java中String字符串的分割
来源:作者:盈灿科技
方法1.
split()方法,比较常见和常用,功能非常强大,不仅可以传入单个的分隔符,还能传入一个正则表达式。比如字符串“a,b;c.d”,把[,|;|.]正则表达式当参数传入即可分割成"a""b""c""d"四个子串。
不过,对于常见的简单的字符串分割功能而言,其性能表现不算优异,比如较大的循环中频繁操作就会表现不佳,如果系统性能敏感的话不适宜使用该方法。
方法2.
StringTokenizer()方法
典型构造函数StringTokenizer(String str, String delim)//参数为源字符串和分隔符
简单的字符串分割时,性能比split()优秀一些。
示例:
StringTokenizer st = new StringTokenizer(orgstr, ";");
for(int i=0; i<100; i++){
while(st.hasMoreTokens()){
st.nextToken();
}
st = new StringTokenizer(orgstr, ";");
}
方法3.
indexOf()和subString()的算法都非常快,利用这两个方法进行字符串分割速度会很快,但是相应的需要自己编写分割方法的代码,增加了繁琐性。我测试发现较之前面两个方法,这种方法的效率确实提高了好几个量级。
示例:
for(int i=0; i<100; i++){
while(true){
String splitstr = null;
int j = temp.indexOf(';');
if(j<0) break;
splitstr = temp.substring(0,j);
temp =temp.substring(j+1);
}
temp = orgstr;
}