StringTokenizer和Split性能比较
2014-06-03 17:12
253 查看
朋友问我的问题,网上搜了下,都说StringTokenizer性能要好些,不过也有反对意见,还是自己试验下。
一百万以空格区分的字符串,拆分后重新组成不带空格的串。
输出:
结论:
StringTokenizer确实更快些,至于为什么jdk里不推荐使用了,还要再研究。
一百万以空格区分的字符串,拆分后重新组成不带空格的串。
import java.util.Random; import java.util.StringTokenizer; /** * * @author Jason Li 2014-6-3 * StringTokenizer和Spilt速度比较 * */ public class StringTest { public static void main(String[] args) { String str = buildString(1_000_000); //1.7新特性, 1000000 long start; long end; System.out.println("-----------StringTokenizer start-----------"); start = System.currentTimeMillis(); StringTokenizer st = new StringTokenizer(str); StringBuilder sb = new StringBuilder(); while(st.hasMoreTokens()){ sb.append(st.nextToken()); } end = System.currentTimeMillis(); System.out.println("StringTokenizer time use:" + (end-start)); System.out.println("-----------StringSpilt start-----------"); start = System.currentTimeMillis(); StringBuilder sb2 = new StringBuilder(); String[] strs = str.split("\\s"); for(String s: strs){ sb2.append(s); } end = System.currentTimeMillis(); System.out.println("StringSpilt time use:" + (end-start)); } //建立一个长字符串, //其中有空格,以便拆分成length长度的n个字符串 private static String buildString(int length) { StringBuilder sb = new StringBuilder(); Random r =new Random(); for (int i = 0; i <length;i++ ){ for (int j = r.nextInt(10); j>0 ;j--){ sb.append((char)('a' + r.nextInt(26))); } sb.append(" "); } return sb.toString(); } }
输出:
-----------StringTokenizer start----------- StringTokenizer time use:131 -----------StringSpilt start----------- StringSpilt time use:509
结论:
StringTokenizer确实更快些,至于为什么jdk里不推荐使用了,还要再研究。
相关文章推荐
- java中subString、split、stringTokenizer三种截取字符串方法的性能比较
- java中subString、split、stringTokenizer三种截取字符串方法的性能比较
- String 的 split、subString,外加StringTokenizer之性能比较
- java java中subString、split、stringTokenizer三种截取字符串方法的性能比较
- java java中subString、split、stringTokenizer三种截取字符串方法的性能比较
- String的substring、split, StringTokenizer 截取字符串性能比较
- java中subString、split、stringTokenizer三种截取字符串方法的性能比较
- java中subString、split、stringTokenizer三种截取字符串方法的性能比较(转)
- java java中subString、split、stringTokenizer三种截取字符串方法的性能比较
- StringTokenizer和Split性能比较
- String的substring、split, StringTokenizer 截取字符串性能比较
- java java中subString、split、stringTokenizer三种截取字符串方法的性能比较
- java java中subString、split、stringTokenizer三种截取字符串方法的性能比较
- Java中substring、split、StringTokenizer三种截取字符串方法的性能比较
- java java中subString、split、stringTokenizer三种截取字符串方法的性能比较
- StringTokenizer和Split性能比较
- String类的split()方法与StringTokenizer方法对字符串分割并输出内容的性能比较
- java中subString、split、stringTokenizer三种截取字符串方法的性能比较
- explode,split,preg_split性能比较
- SQLSERVER2008中CTE的Split与CLR的性能比较 <转>