zoukankan      html  css  js  c++  java
  • java中字符串切割的方法总结

    StringTokenizer最快 ,基本已经不用了,除非在某些需要效率的场合。
    Scanner最慢。 
    String和Pattern速度差不多。Pattern稍快些。 String和Pattern的split 方法效率相当,常用

    1. public   static   void  main(String [] args){  
    2. long  start = System.currentTimeMillis();  
    3. for ( int  i= 0 ;i< 100000 ;i++){  
    4.         test1();  
    5.     }  
    6. long  end = System.currentTimeMillis();  
    7.     System.out.println("StringTokenzier: " +(end-start));  
    8.     start = System.currentTimeMillis();  
    9. for ( int  i= 0 ;i< 100000 ;i++){  
    10.         test2();  
    11.     }  
    12.     end = System.currentTimeMillis();  
    13.     System.out.println("Scanner: " +(end-start));  
    14.     start = System.currentTimeMillis();  
    15. for ( int  i= 0 ;i< 100000 ;i++){  
    16.         test3();  
    17.     }  
    18.     end = System.currentTimeMillis();  
    19.     System.out.println("String: " +(end-start));  
    20.     start = System.currentTimeMillis();  
    21. for ( int  i= 0 ;i< 100000 ;i++){  
    22.         test4();  
    23.     }  
    24.     end = System.currentTimeMillis();  
    25.     System.out.println("Pattern: " +(end-start));  
    26. }  
    27. //用StringTokenizer   
    28. public   static   void  test1(){  
    29.     String input = "This is 1 just a test" ;  
    30.     StringTokenizer st = new  StringTokenizer(input);  
    31. while (st.hasMoreTokens()){  
    32.         String s = st.nextToken();  
    33.     }  
    34. }  
    35. //用Scanner的方法   
    36. public   static   void  test2(){  
    37.     String input = "This is 1 just a test" ;  
    38.     Scanner scanner = new  Scanner(input);  
    39.     scanner.useDelimiter(" " );  
    40. while (scanner.hasNext()){  
    41.         String s = scanner.next();  
    42.     }  
    43. }  
    44. //用String的split方法   
    45. public   static   void  test3(){  
    46.     String input = "This is 1 just a test" ;  
    47.     String [] str = input.split(" " );  
    48. for ( int  i= 0 ;i<str.length;i++){  
    49.         String s = str[i];  
    50.     }  
    51. }  
    52. //用Pattern的方法   
    53. public   static   void  test4(){  
    54.     Pattern pattern = Pattern.compile(" " );  
    55.     String input = "This is 1 just a test" ;  
    56.     String [] str = pattern.split(input);  
    57. for ( int  i= 0 ;i<str.length;i++){  
    58.         String s = str[i];  
    59.     }  
    60. }  
    1.        public static void main(String [] args){  
    2.     long start = System.currentTimeMillis();  
    3.     for(int i=0;i<100000;i++){  
    4.         test1();  
    5.     }  
    6.     long end = System.currentTimeMillis();  
    7.     System.out.println("StringTokenzier: "+(end-start));  
    8.       
    9.     start = System.currentTimeMillis();  
    10.     for(int i=0;i<100000;i++){  
    11.         test2();  
    12.     }  
    13.     end = System.currentTimeMillis();  
    14.     System.out.println("Scanner: "+(end-start));  
    15.       
    16.     start = System.currentTimeMillis();  
    17.     for(int i=0;i<100000;i++){  
    18.         test3();  
    19.     }  
    20.     end = System.currentTimeMillis();  
    21.     System.out.println("String: "+(end-start));  
    22.       
    23.     start = System.currentTimeMillis();  
    24.     for(int i=0;i<100000;i++){  
    25.         test4();  
    26.     }  
    27.     end = System.currentTimeMillis();  
    28.     System.out.println("Pattern: "+(end-start));  
    29. }  
    30.        //用StringTokenizer  
    31. public static void test1(){  
    32.     String input = "This is 1 just a test";  
    33.     StringTokenizer st = new StringTokenizer(input);  
    34.     while(st.hasMoreTokens()){  
    35.         String s = st.nextToken();  
    36.     }  
    37. }  
    38. //用Scanner的方法  
    39. public static void test2(){  
    40.     String input = "This is 1 just a test";  
    41.     Scanner scanner = new Scanner(input);  
    42.     scanner.useDelimiter(" ");  
    43.     while(scanner.hasNext()){  
    44.         String s = scanner.next();  
    45.     }  
    46. }  
    47. //用String的split方法  
    48. public static void test3(){  
    49.     String input = "This is 1 just a test";  
    50.     String [] str = input.split(" ");  
    51.     for(int i=0;i<str.length;i++){  
    52.         String s = str[i];  
    53.     }  
    54. }  
    55. //用Pattern的方法  
    56. public static void test4(){  
    57.     Pattern pattern = Pattern.compile(" ");  
    58.     String input = "This is 1 just a test";  
    59.     String [] str = pattern.split(input);  
    60.     for(int i=0;i<str.length;i++){  
    61.         String s = str[i];  
    62.     }  
    63. }  


    运行了五次。输出结果如下:

    Java代码 
    1.  StringTokenzier:  110   
    2. Scanner: 3281   
    3. String: 453   
    4. Pattern: 438   
    5.   
    6. StringTokenzier: 109   
    7. Scanner: 3297   
    8. String: 453   
    9. Pattern: 438   
    10.   
    11. StringTokenzier: 110   
    12. Scanner: 3265   
    13. String: 485   
    14. Pattern: 437   
    15.   
    16. StringTokenzier: 109   
    17. Scanner: 3266   
    18. String: 469   
    19. Pattern: 437   
    20.   
    21. StringTokenzier: 109   
    22. Scanner: 3297   
    23. String: 469   
    24. Pattern: 422   
    1.  StringTokenzier: 110  
    2. Scanner: 3281  
    3. String: 453  
    4. Pattern: 438  
    5.   
    6. StringTokenzier: 109  
    7. Scanner: 3297  
    8. String: 453  
    9. Pattern: 438  
    10.   
    11. StringTokenzier: 110  
    12. Scanner: 3265  
    13. String: 485  
    14. Pattern: 437  
    15.   
    16. StringTokenzier: 109  
    17. Scanner: 3266  
    18. String: 469  
    19. Pattern: 437  
    20.   
    21. StringTokenzier: 109  
    22. Scanner: 3297  
    23. String: 469  
    24. Pattern: 422  


    StringTokenizer最快 
    Scanner最慢。 
    String和Pattern速度差不多。Pattern稍快些。

  • 相关阅读:
    reduce()、filter()、map()、some()、every()、...展开属性
    react的this.setState详细介绍
    HDU
    The 2015 ACM-ICPC Asia Beijing Regional Contest
    Ubuntu 14.04 安装 WPScan
    蓝桥杯-历届试题-公式求值
    Ubuntu下快速搭建ACdream Online Judge v1.5.3
    Codeforces Round #290 (Div. 2)
    SOJ
    SOJ
  • 原文地址:https://www.cnblogs.com/xing----hao/p/3808010.html
Copyright © 2011-2022 走看看