java 字符串split

使用StringTokenizer比使用Spring.split()提高接近一倍的性能。

要是用indexOf来逐步查找,性能还能进一步提高25%左右。很显然,越接近底层的方法性能越得到满足。

不过,这个只是在于对性能要求高的需求底下才有真正的意义。普通应用,String.split()足以

 

补充一点:

使用String.indexOf()去扫描的时候,如果使用ArrayList或者Vector(两者性能基本上没多大区别)也不是最优方案

还有可以提高更好的性能的方法,就是先扫描有多少个分割符,用String[] 来存贮,比使用Vector要提高一倍左右的性能

如果还需要更进一步,那么就需要使用好的扫描算法了。

 

 String.split方法很常用,用于切割字符串,split传入的参数是正则表达式,它的内部是每次都comiple正则表达式,再调用Pattern.split方法:

public String[] split(String regex, int limit) {
    return Pattern.compile(regex).split(this, limit);
    }

  public String[] split(String regex) {
        return split(regex, 0);
    }


    因此,如果你调用String.split非常频繁的话,每次都重新编译正则表达式的代价很高,性能会受到很大影响,此时最好自己预编译Pattern,再调用Pattern.split方法为妙。

String []items=line.split(" ");

//替代为

static Pattern pattern=Pattern.compile(" ");



String []items=pattern.split(line,0);

 

你可能感兴趣的:(split)