1. 使用split("正则表达式")来分割字符串,返回字符串数组
因为分析正则比较耗时,所以这种方式会有很大的性能损耗。
例:String s = "asd,123,qw12,as22";
String[] result = s.split(",");
for(int i=0;i<result.length;i++){
System.out.println("结果:"+result[i].toString());
}
运行结果:结果:asd
123
aw12
as22
2. 使用subString()方法来截取字符串,返回字符串
通过不同的参数来控制截取方式
2.1 传入一个索引值a(int)
返回从索引值a位置开始(包括a)到被截取字符串末尾的字符串(索引值从0开始)
例:String s = "asdqweasdqwe";
System.out.println("结果:"+s.subString(3));
运行结果:结果: qweasdqwe
2.2 传入两个索引值a,b(int)
返回从索引值a开始(包括a)到索引值b结束(不包括b)的字符串(索引值从0开始)
例:String s = "asdqweasdqwe";
System.out.println("结果:"+s.subString(2,6));
运行结果:结果:dqwe
3.使用StringUtils提供的方法(常用所在包:commons-long3-3.4.jar)
StringUtils中subString()方法与 2 中描述的基本一致,其中多一个参数为被截取字符串
即:StringUtils(被截取字符串,起始位置,结束位置);
注意:当截取位置为非负数时,从左往右开始截取,第一位为0,但当索引值为负数时,则从右往左截取,此时右侧第一位为-1;
下面介绍其它几种截取方法。
3.1 subStringBefore(a,b) 截取字符串a中第一个b之前的内容(不包括b)
StringUtils.subStringBefore("qweasdqweasd","s"); 结果:qwea
3.2 subStringBeforeLast(a,b) 截取字符串a中最后一个b之前的内容(不包括b)
StringUtils.subStringBeforeLast("qweasdqweasd","s"); 结果:qweasdqwea
3.3 subStringAfter(a,b) 截取字符串a中第一个b之后的内容(不包括b)
StringUtils.subStringAfter("qweasdqweasd","s") 结果:dqweasd
3.4 subStringAfterLast(a,b) 截取字符串a中最后一个b之后的内容(不包括b)
StringUtils.subStringAfterLast("qweasdqweasd","s") 结果:d
3.5 subStringBetween(a,b) 截取指定标记字符串之间的字符序列
StringUtils.subStringBetween("qweasdqweasd","qwe") 结果:asd
注意:若被截取的字符串为null或" ",则截取后返回的结果也为null或" "
关于StringUtils工具类的其它运用,如对字符串的判空、转换、移除、替换、反转、去除空白、包含、查询索引等等,请参考: