有一个字符串:machine1#global#20090112  我想分离出 machine1 global 20090112, 用哪个方法最快?

解决方案 »

  1.   

    String name = "machine1#global#20090112";
    String[] test = name.split("#"); 
      

  2.   


    public static void main(String args[]){
    String str = "machine1#global#20090112";

    String[] array = str.split("#");

    for(String s : array)
    System.out.println(s);
    }
    行吗?
      

  3.   

    1. String s = new String("machine1#global#20090112");
     String[] arr = s.split("#");2.   String s = new String("machine1#global#20090112");
       StringTokenizer commaToker = new StringTokenizer(s, "#");
       String[] arr = new String[commaToker.countTokens()];
    String.split()方法的效率是较低的, 
    而StringTokenizer跟indexOf()解析效率基本一样.
    究其原因, java中对产生数组的消耗是很大的, 
    尤其当我们不知道数组大小的时候
    造成资源的浪费更是严重.
    而StringTokenizer跟indexOf()本质上是一直的, 
    所有效率也不相上下. 
    但是如果我们调用了st.countTokens()方法, 
    那么速度就会跌一大截.
      

  4.   

    public static void main(String args[]){
            String str = "machine1#global#20090112";
            
            String[] array = str.split("#");
            
            for(String s : array)
                System.out.println(s);
        }