1.string对象是final的?

 String str="asdfdf";
str.replace("as","");
System.out.println(str);//asdfdf
str=str.replace("as","");
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处理,更新数据库。

处理的数据对象是这样的:

 '{\"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框架:

 /**
* 处理错误数据
*/
public void manageSQL(){
String sql="select * from _table";
List<Record> list=Db.find(sql);
setAttr("length",list.size());
for(int i=0; i<list.size(); i++){
//取出一条记录
Record r=list.get(i);
//取出json数据
String json=r.getStr("showImg");
setAttr("old=",json);
//去除emplate为key的开头的错误数据
int ind=json.indexOf(",\"emplate");
if(ind>0){
json=json.substring(0, ind)+"}";
}
setAttr("new=",json);
//去除value为""的元素
json=json.replaceAll("((?<=\\{)\"\\w+\":\"\",|,*\"\\w+\":\"\")", "");
setAttr("all:"+i,json); System.out.println(json+"========="); //入库保存更新
r.set("showImg", json); Db.update("home_template",r); } renderJson();
}

4.String对象的一些方法:

length() - 返回长度,注意和js中不同,js里面是length属性。

     对应长度:Array的长度-length;List的长度-size();

    

java中遇到过的String的一些特性的更多相关文章

  1. java中main方法的 (String []args)

    java中main方法的 (String []args)         String[] args是main函数的形式参数,可以用来获取命令行用户输入进去的参数.java 本身不存在不带String ...

  2. java中的switch用String作为条件

    在开发java程序的过程中,我们遇到了条件推断首选就是switch,可是java中的switch功能不支持字符串作为条件.这时我们该怎么办呢? --使用枚举. 一.枚举简单了解    1.enum是一 ...

  3. java中int转成String位数不足前面补零

    java中int转成String位数不足前面补零 转载自:http://ych0108.iteye.com/blog/2174134 java中int转String位数不够前面补零 String.fo ...

  4. Java中toString()与new String()

    Java中toString()与new String(): 1.错误演示: FileInputStream fileIn = new FileInputStream(filePath);byte[] ...

  5. Java中是否可以继承String类,为什么

    Java中,是否可以继承String类?为什么? 答案: 不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变. public final class ...

  6. java中的BigDecimal和String的相互转换,int和String的类型转换,Integer类和String相互转换

    一: /*由数字字符串构造BigDecimal的方法 *设置BigDecimal的小数位数的方法 */ 注:BigDecimal在数据库中存的是number类型. import java.math.B ...

  7. Java中字符数组、String类、StringBuffer三者的相互转换

    一.StringBuffer与String的相互转换 1.将StringBuffer转换成String StringBuffer类成员toString函数可将其转换成String类型. StringB ...

  8. Java中Object.equals和String.equals的区别详解

    前言 Java中的堆和常量池的区别是什么呢?Object.equals与String.equals的区别呢?下面让我们通过一个小示例让你明白它- 1.基础知识 Java的存储空间:寄存器.栈.堆.静态 ...

  9. Java中,那些关于String和字符串常量池你不得不知道的东西

    老套的笔试题 在一些老套的笔试题中,会要你判断s1==s2为false还是true,s1.equals(s2)为false还是true. String s1 = new String("xy ...

随机推荐

  1. Icident event 分析

    现象 备库中断,显示如下错误 Connect_Retry: 60 Master_Log_File: mysql-bin.000185 Read_Master_Log_Pos: 308647804 Re ...

  2. Percona Server 5.6.13-61.0 首个 GA 版本发布

    Percona Server 5.6 的首个 GA 版本发布了,版本号是 5.6.13-61.0 ,该版本基于 MySQL 5.6.13 改进内容包括: New Features: Percona S ...

  3. .net core 中环境变量的配置

    配置文件: Properties目录下的launchSettings.json IISExpress配置 "ASPNET_ENV": "EnvironmentOne&qu ...

  4. 微软正式发布Visual Studio 2013 Update 3 (2013.3) RTM

    昨天微软的Visual Studio 2013 Update 3(Visual Studio 2013.3)正式发布(RTM)了,做为微软认证金牌合作的葡萄城控件,我们组织力量第一时间进行翻译.分享给 ...

  5. Win10 UWP开发中的重复性静态UI绘制小技巧 2

    小技巧1 地址:http://www.cnblogs.com/ms-uap/p/4641419.html 介绍 我们在上一篇博文中展示了通过Shape.Stroke族属性实现静态重复性UI绘制,使得U ...

  6. 浅谈Excel开发:六 Excel 异步自定义函数

    上文介绍了Excel中的自定义函数(UDF ),它极大地扩展了Excel插件的功能,使得我们可以将业务逻辑以Excel函数的形式表示,并可以根据这些细粒度的自定义函数,构建各种复杂的分析报表. 普通的 ...

  7. Stealth视频教程学习笔记(第二章)

    Stealth视频教程学习笔记(第二章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...

  8. cxf restful

    Restful 服务端 1 创建好pojo.dao.service, dao进行数据库操作,service提供服务 @Path("/roomservice") @Produces( ...

  9. C-Lodop 非典型应用

    Lodop是什么? 有人说她是报表打印工具,因为那个add_print_table语句把报表统计的那点事弄了个明明白白: 有人说她是条码打印工具,因为用了她再也不用后台生成条码图片了,前端一行指令就动 ...

  10. iOS UITableView行高自行扩展

    myTableView.estimatedRowHeight = ; myTableView.rowHeight = UITableViewAutomaticDimension; 不需要实现 - (C ...