总结下字符串分割的相关实现方法。供需要的朋友查看。以下代码通过三种方式进行粗略比较。至于哪个更优请结合具体情况自行判断
/*
* Copyright (C), 2016-2017, xxxxx
* FileName: StringOptimization.java
* Author: me
* Date: 2017年9月27日 下午2:18:15
*/
package system;
import java.util.StringTokenizer;
/**
* @Author me
* @Creation 2017年9月27日 下午2:18:15
* @Description: //模块目的、功能描述
*/
public class StringOptimization {
public static void main(String[] args) {
// TODO Auto-generated method stub
long startTime=System.currentTimeMillis();
splitTestForIndexOf("测试;分隔符;效率;哪一种好;",startTime,";");
splitTestForSplit("测试;分隔符;效率;哪一种好;",startTime,";");
splitTestForStringToken("测试;分隔符;效率;哪一种好;",startTime,";");
}
public static void splitTestForIndexOf(String str,long startTime,String label){
String tempStr=str;
//StringBuffer resultStr=new StringBuffer();
for(int i=0;i<10000;i++){
while(true){
// String splitStr=null;
int index= tempStr.indexOf(label);
if(index<0) break;
//splitStr=tempStr.substring(0, index);
//resultStr.append(splitStr);
tempStr=tempStr.substring(index+1);
}
tempStr=str;
}
System.out.println("【splitTestForIndexOf】程序共执行"+(System.currentTimeMillis()-startTime)+"ms"+"【执行结果为】");
}
public static void splitTestForSplit(String str,long startTime,String label){
for(int i=0;i<10000;i++){
str.split(label);
}
System.out.println("【splitTestForSplit】程序共执行"+(System.currentTimeMillis()-startTime)+"ms"+"【执行结果为】");
}
public static void splitTestForStringToken(String str,long startTime,String label){
StringTokenizer strToken=new StringTokenizer(str,label);
for(int i=0;i<10000;i++){
while(strToken.hasMoreTokens()){
strToken.nextToken();
}
strToken=new StringTokenizer(str,label);
}
System.out.println("【splitTestForStringToken】程序共执行"+(System.currentTimeMillis()-startTime)+"ms");
}
}