基于指定数组大小的切割字符串(java字符串分割性能比较)
来源:互联网 发布:网络消费者权益保护 编辑:程序博客网 时间:2024/06/06 03:30
参看:http://kfyfly.iteye.com/blog/1105716
/**
* 基于指定数组大小的切割字符串* @param str
* @param tag
* @param arraySize
* @return
*/
public static String[] split(String str,String tag,int arraySize){
String[] result = new String[arraySize];
int k=0,count=0;
for (int i = 0; i < str.length(); i++) {
if(str.substring(i,i+1).equals(tag)){
if(count==0){
result[count] = str.substring(0, i);
}else if(count==(arraySize-2)){//如果是倒数第二个元素
result[count] = str.substring(k+1, i);
result[arraySize-1] = str.substring(i+1, str.length());
}else{
result[count] = str.substring(k+1, i);
}
k=i;count++;
}
}
return result;
}
/**
* 基于指定数组大小的切割字符串
* @param str
* @param tag
* @param arraySize
* @return
*/
public static String[] split(String str,char tag,int arraySize){
String[] result = new String[arraySize];
int k=0,count=0;
for (int i = 0; i < str.length(); i++) {
if(str.charAt(i)==(tag)){
if(count==0){
result[count] = str.substring(0, i);
}else if(count==(arraySize-2)){//如果是倒数第二个元素
result[count] = str.substring(k+1, i);
result[arraySize-1] = str.substring(i+1, str.length());
}else{
result[count] = str.substring(k+1, i);
}
k=i;count++;
}
}
return result;
}
测试:
package com.dlmu.database.manager.test;
import com.dlmu.database.manager.util.Util;
public class TestSplit {
/**
* @param args
*/
public static void main(String[] args) {
String str = "sfsdf aaaaaaa ssssssssss rrrrrrrrr";
String str1 = "sfsdf bbbbbbbbb ccccccccccc eeeeeeeee";
String[] temp = null;
long start = System.currentTimeMillis();
for(int i = 0;i < 1000000;++i){
temp = Util.split(str," ",4);
}
System.out.println("string take time:"+(System.currentTimeMillis()-start));
System.out.println("temp[0]-------"+temp[0]);
System.out.println("temp[1]-------"+temp[1]);
System.out.println("temp[2]-------"+temp[2]);
System.out.println("temp[3]-------"+temp[3]);
String[] temp2 = null;
long start1 = System.currentTimeMillis();
for(int i = 0;i < 1000000;++i){
temp2 = Util.split(str,' ',4);
}
System.out.println("char take time:"+(System.currentTimeMillis()-start1));
System.out.println("temp2[0]-------"+temp2[0]);
System.out.println("temp2[1]-------"+temp2[1]);
System.out.println("temp2[2]-------"+temp2[2]);
System.out.println("temp2[3]-------"+temp2[3]);
String[] temp1 = Util.split(str1," ",4);
System.out.println("temp1[0]-------"+temp1[0]);
System.out.println("temp1[1]-------"+temp1[1]);
System.out.println("temp1[2]-------"+temp1[2]);
System.out.println("temp1[3]-------"+temp1[3]);
}
}
结果:
string take time:2313
temp[0]-------sfsdf
temp[1]-------aaaaaaa
temp[2]-------ssssssssss
temp[3]-------rrrrrrrrr
char take time:594
temp2[0]-------sfsdf
temp2[1]-------aaaaaaa
temp2[2]-------ssssssssss
temp2[3]-------rrrrrrrrr
temp1[0]-------sfsdf
temp1[1]-------bbbbbbbbb
temp1[2]-------ccccccccccc
temp1[3]-------eeeeeeeee
仅供参考
- 基于指定数组大小的切割字符串(java字符串分割性能比较)
- java字符串分割性能比较
- java字符串分割性能比较
- oracle怎么切割一个指定的字符串按指定的标志符分割成字符数组
- java几种切割字符串方法的性能比较
- 按指定的字符把字符串分割为字符串数组
- 按照指定的字符串分割字符串形成字符数组
- 如何创建指定大小的数组/字符串
- java字符串比较大小
- java字符串比较大小
- 字符串分割后转换成指定类型的数组
- 按照指定的字符分割字符串形成字符数组
- 比较字符串的大小
- 比较字符串的大小
- 比较字符串的大小
- 比较字符串的大小
- 字符串的大小比较
- 字符串的大小比较
- 数据量极大时用什么排序方法比较好
- Java JDK版本说明
- JDBC以及相关技术学习(一)----第一个JDBC程序
- linux系统下proc文件的含义
- 一步一步教你搭建win7下的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
- 基于指定数组大小的切割字符串(java字符串分割性能比较)
- uva10716 - Evil Straw Warts Live(转换成回文数)
- 《硅谷禁书》 pdf
- MMU的通俗理解
- android中listview卡顿的终极原因解析
- Linux 文件系统
- Node.js:用JavaScript写服务器端程序-介绍并写个MVC框架
- AS3搭建开发环境
- 字符串“This is a test”将其字符串中单词首字符大写后输出(“This Is A Test”)。