这两个方法究竟在效率上有什么区别吗?我做了如下代码所示的试验:
String a= "";
for( int i=0;i<1000;i++){
a=a+ ","+i;
}
String arr[] = null;
Long before=System. currentTimeMillis();
//System.out.println();
for( int j=0;j<400000;j++){
arr=StringUtils. split(a, ",");
}
Long mid=System. currentTimeMillis();
System. out.println(mid-before);
for(String str:arr){
System. out.print(str+ " ");
}
System. out.println();
before=System. currentTimeMillis();
for( int j=0;j<400000;j++){
arr=a.split( ",");
}
Long after=System. currentTimeMillis();
System. out.println(after-before);
for(String str:arr){
System. out.print(str+ " ");
}
System. out.println();
实验结果如下图所示,在执行40万次split操作的对比结果显示,StringUtils的split耗时16.6秒,而String自带的split方法耗时74.7秒。效率大约差4.5倍。所以如果有大量的这个操作,还是用StringUtils的方法吧。