importjava.util.ArrayList;importjava.util.List;
/**
*CreatedbyAdministratoron2015/6/14.
*/
publicclassTest{
privatestaticList<String>infor;
static{
infor=newArrayList<String>();
infor.add("流水号1");
infor.add("收款方帐号1");
infor.add("真实姓名");
infor.add("付款金额1");
infor.add("备注说明1");
infor.add("流水号2");
infor.add("收款方帐号2");
infor.add("真实姓名");
infor.add("付款金额2");
infor.add("备注说明2");
}
publicstaticvoidmain(Stringargs[]){
/**
*开始拼接字符串
*/
StringinforString=infor.get(0);
for(inti=1,k=infor.size();i<k;i++){
if(i%5==0){
inforString+="|";
}else{
inforString+="^";
}
inforString+=infor.get(i);
}
System.out.println("拼接后的字符串是:"+inforString);
/**
*开始解释字符串
*/
String[]usersInfor=inforString.split("\\|");
System.out.println(usersInfor.length);
Useruser;
String[]userString;
for(inti=0,k=usersInfor.length;i<k;i++){
userString=usersInfor[i].split("\\^");
user=newUser();
user.setId(userString[0]);
user.setGathering(userString[1]);
user.setName(userString[2]);
user.setPayment(userString[3]);
user.setRemark(userString[4]);
System.out.println("User"+i+"="+user);
}
}
staticclassUser{
privateStringid;
privateStringgathering;
privateStringname;
privateStringpayment;
privateStringremark;
publicUser(){
}
publicStringgetId(){
returnid;
}
publicvoidsetId(Stringid){
this.id=id;
}
publicStringgetGathering(){
returngathering;
}
publicvoidsetGathering(Stringgathering){
this.gathering=gathering;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetPayment(){
returnpayment;
}
publicvoidsetPayment(Stringpayment){
this.payment=payment;
}
publicStringgetRemark(){
returnremark;
}
publicvoidsetRemark(Stringremark){
this.remark=remark;
}
@Override
publicStringtoString(){
return"[id:"+id+",gathering:"+gathering+",name:"+name+",payment:"+payment+",remark:"+remark+"]";
}
}
}
Java:如果拼接并解析一个由Tab拼接而成的字符串呢?
tab 就是 \t
解析得话用 xxxxxx.splites("\t")
如何用jackson解析含有转义字符的字符串,为标准格式的json字符串
使用JSON从后台向前台传输数据的时候,当数据本身含有一些特殊字符,会导致JSON数据的解析出错。
使用下面的方法对即将向前台输出的json字符串进行处理,可以解决键盘上能输入的所有特殊字符问题。
//当文本中含有如下特殊字符时,此方法可以成功处理,让其在前台被正确解析,注意:此法不能处理单引号
public static String stringToJson(String s) {
StringBuffer sb = new StringBuffer ();
for (int i=0; i<s.length(); i++) {
char c = s.charAt(i);
switch (c) {
case '\"':
sb.append("\\\"");
break;
// case '\\': //如果不处理单引号,可以释放此段代码,若结合下面的方法处理单引号就必须注释掉该段代码
// sb.append("\\\\");
// break;
case '/':
sb.append("\\/");
break;
case '\b': //退格
sb.append("\\b");
break;
case '\f': //走纸换页
sb.append("\\f");
break;
case '\n':
sb.append("\\n"); //换行
break;
case '\r': //回车
sb.append("\\r");
break;
case '\t': //横向跳格
sb.append("\\t");
break;
default:
sb.append(c);
}}
return sb.toString();
}
//注意,下面的方法是在把你的数据文本接入json数据字符串之前使用,预先对文本做处理后在接入JSON字符串
//处理文本中的单引号 和 斜杠
public static String StringDanYinToJSON(String ors) {
ors = ors == null ? "" : ors;
StringBuffer buffer = new StringBuffer(ors);
int i = 0;
while (i < buffer.length()) {
if (buffer.charAt(i) == '\'' || buffer.charAt(i) == '\\') {
buffer.insert(i, '\\');
i += 2;
} else {
i++;
}
}
return buffer.toString();
}
js中如何拼接字符串
JS中有三种字符串连接方式:
第一种方法 , 用连接符“+”把要连接的字符串连起来:
str="a";
str+="b";
第二种方法, 以数组作为中介用 join 连接字符串:
var arr=new Array();
arr.push(a);
arr.push(b);var str=arr.join("");
第三种方法, 利用对象属性来连接字符串:
function stringConnect(){ this._str_=new Array();
}
stringConnect.prototype.append=function(a){ this._str_.push(a);
}
stringConnect.prototype.toString=function(){ return this._str_.join();
} var mystr=new stringConnect;
mystr.append("a"); var str=mystr.toString();
JS中三种字符串连接方式的性能比较:
第一种,方法毫无疑问是最便捷快速的,如果只连接100个以下的字符串建议用这种方法最方便;
第二种,这种方法要比第一种消耗更少的资源,速度也更快;
第三种,方法加入了随机参数,应该是避免了缓存的影响的。
EXCEL表格的设置单元格格式是常规,那么他是字符串吗
常规的话就是由EXCEL来判断,比如输入数字其实就是数值,输入文本就是文本,输入1/2这样的就自动认为是日期型,而变成1月2日。
如果你对于表格数据有要求的话,最好自己指定每列的格式。
我用字符串拼接的json数据是一个图片路径,然后如果图片里面包含“\”和“.”返回到前台都会报解析错误
JS里使用decodeURIComponent/encodeURIComponent,或者decodeURI/encodeURI对URL进行解码和编码;
C#里使用Server.UrlDecode/Server.UrlEncode对URL字符串进行解码和编码;
这样就能解决这些特殊字符的问题了。
Excel查找一个字符串在另一个字符串的位置
使用FIND函数,嵌套SUBSTITUTE函数实现。
首先假设表格如下图所示,要查找A1单元格中“知道”在该字符串中第二次出现的位置
步骤如下:
在B2单元格中输入公式”=FIND("@",SUBSTITUTE(A1,"与","@",2))“(其中@可替换成任何原文本中没有的字符),回车即可。
函数功能解析:
(1)SUBSTITUTE函数:
①函数功能:将某字符串中在指定位置出现的指定字符替换成自定义的字符。
②语法:SUBSTITUTE(text,old_text,new_text,instance_num)
text是需要替换其中字符的文本,或是含有文本的单元格引用;
old_text是需要替换的旧文本;
new_text用于替换old_text的文本;
instance_num为一数值,用来指定以new_text替换第几次出现的old_text;如果指定了instance_num,则只有满足要求的old_text被替换;否则将用new_text替换Text中出现的所有old_text。
(2)FIND函数
①函数功能:查找指定字符在字符串中出现的位置。
②语法:FINDB(find_text,within_text,start_num)Find_text是要查找的文本。Within_text是包含要查找文本的文本。Start_num指定开始进行查找的字符。within_text 中的首字符是编号为 1 的字符。
如果忽略 start_num,则假设其为 1。
(3)本例解析
首先利用SUBSTITUTE函数将字符串中要查找的指定字符第二次出现时的字符替代成特殊字符(本例中采用”@“),然后利用FIND函数查找”@“出现的位置,即为原来字符串中指定字符第二次出现的位置。
java中两个字符串的内存地址相同
String s1 = new String("I am a student"); 这里 你声明了一个引用 s1
指向的是 new String("I am a student"); 这个字符串
String s4 = s1; 这里 你又声明一个引用 指向s1的引用 也就是new String("I am a student");
if(s1 == s4) {
System.out.println("这两个字符串的内存位置相同");
}
上面还是相等的
但是 s4 = s4.replace('a', 'A');
s4.replace('a', 'A'); 生成了另一个 字符串 你要知道 String 是final类型的 所以
这个时候 即原来已经开辟了内存空间的 new String("I am a student"); 是不可能改变内容了的
这个时候 s4.replace('a', 'A'); 就另开辟了一个内存空间
而这个时候 你的S4指向s4.replace('a', 'A'); 而原来的s1还是指向 new String("I am a student");
他们肯定不一样的呢
转载请注明出处51数据库 » 拼接字符串解析软件 java拼接字符和解析字符串
Photoshop|
Dreamweaver|
SVG|
WebGL|
Visual Studio|
PowerDesigner|
Eclipse|
Git|
Apache Ant|
Atom|
Composer|
CodeSmith|
Flex|
Gradle|
Maven|
Sublime Text3|
SVN|
Tableau|
Vim|
Chrome开发者工具|
OpenGL|
Unity|
Direct3D|
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....