内容简介:java中遇到过的String的一些特性
1.string对象是final的?
1 String str="asdfdf"; 2 str.replace("as",""); 3 System.out.println(str);//asdfdf 4 str=str.replace("as",""); 5 System.out.println(str);//dfdf
2.字符串的切割
遇到根据url获取参数的问题:
enterId = Long.parseLong(target.split("/")[2]);
这个要处理切割字符串问题
splitapi里是这样的:
public String[] split(String regex,int limit) 根据匹配给定的正则表达式来拆分此字符串。
此方法返回的数组包含此字符串的子字符串,每个子字符串都由另一个匹配给定表达式的子字符串终止,或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。如果表达式不匹配输入的任何部分,那么所得数组只具有一个元素,即此字符串。limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。
例如,字符串 "boo:and:foo" 使用这些参数可生成以下结果:
Regex Limit 结果
: 2 { "boo", "and:foo" }
: 5 { "boo", "and", "foo" }
: -2 { "boo", "and", "foo" }
o 5 { "b", "", ":and:f", "", "" }
o -2 { "b", "", ":and:f", "", "" }
o 0 { "b", "", ":and:f" }
public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。 该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。
例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果:
Regex 结果
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }
参数:
regex - 定界正则表达式
返回:
字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的
抛出:
PatternSyntaxException - 如果正则表达式的语法无效
3.对json字符串去空值
上传代码错误导致数据库中地址存储有问题,有一些空的value,还有结尾多了两个键值对,当然也有的没问题。对 sql 掌握比较差,于是选择了用 java 处理,更新数据库。
处理的数据对象是这样的:
1 '{\"showImg_1\":\"/upload/webHome/template/4ddedebb-7615-4686-b27a-b515a6a5a2cc.jpg\",\"showImg_2\":\"/upload/webHome/template/2c0806ee-6165-4b95-949d-340ddad18171.jpg\",\"showImg_3\":\"/upload/webHome/template/35464a57-a987-4e40-91b4-f5b33e343f46.jpg\",\"showImg_4\":\"/upload/webHome/template/9bddbbd6-1ad2-4290-b087-caa26bf93197.jpg\",\"showImg_5\":\"/upload/webHome/template/604b7531-384b-4052-93cb-e5d51182023b.jpg\",\"showImg_6\":\"/upload/webHome/template/4673cf82-fa07-4acc-ac7c-e5c7ef9af687.jpg\",\"showImg_7\":\"\",\"showImg_8\":\"\",\"emplate.quickmark\":\"/upload/webHome/template/27b4cb88-b3b2-4046-bedd-c4ad92735310.jpg\",\"emplate.img\":\"/upload/webHome/template/7949e9eb-eb86-4d54-ab09-1271ea202b2e.jpg\"}'
用的jfinal框架:
1 /** 2 * 处理错误数据 3 */ 4 public void manageSQL(){ 5 String sql="select * from _table"; 6 List<Record> list=Db.find(sql); 7 setAttr("length",list.size()); 8 for(int i=0; i<list.size(); i++){ 9 //取出一条记录 10 Record r=list.get(i); 11 //取出json数据 12 String json=r.getStr("showImg"); 13 setAttr("old=",json); 14 //去除emplate为key的开头的错误数据 15 int ind=json.indexOf(",\"emplate"); 16 if(ind>0){ 17 json=json.substring(0, ind)+"}"; 18 } 19 setAttr("new=",json); 20 //去除value为""的元素 21 json=json.replaceAll("((?<=\\{)\"\\w+\":\"\",|,*\"\\w+\":\"\")", ""); 22 setAttr("all:"+i,json); 23 24 System.out.println(json+"========="); 25 26 //入库保存更新 27 r.set("showImg", json); 28 29 Db.update("home_template",r); 30 31 } 32 33 renderJson(); 34 }
4.String对象的一些方法:
length() - 返回长度,注意和js中不同,js里面是length属性。
对应长度:Array的长度-length;List的长度-size();
本文转自Ryan.Miao博客园博客,原文链接:http://www.cnblogs.com/woshimrf/p/4605205.html,如需转载请自行联系原作者
以上所述就是小编给大家介绍的《java中遇到过的String的一些特性》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
VC++深入详解
孙鑫 / 电子工业出版社 / 2006-6 / 89.00元
《VC++深入详解》主要从程序内部运行的机制和MFC程序的组织脉络入手,使读者在学习VC++编程知识时,既能够知其然,又能知其所以然,从而帮助读者从根本上理解和掌握Windows的程序设计。另外,《VC++深入详解》还贯穿作者多年来学习编程的一些经验,以及一些学习方法的建议,为读者进一步的学习提供指导。 《VC++深入详解》从实际应用入手,由浅入深、循序渐进地讲述Windows程......一起来看看 《VC++深入详解》 这本书的介绍吧!