庄周梦蝶

生活、程序、未来
   :: 首页 ::  ::  :: 聚合  :: 管理

Java Tips:使用Pattern.split替代String.split

Posted on 2009-05-21 22:49 dennis 阅读(3200) 评论(2)  编辑  收藏 所属分类: java
    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);


PS.今天支付宝的蔡学镛大师到公司演讲,做的是《关于我的IT学习生活》的主题讲座,介绍了他的经历和经验,留下深刻印象的是他看起来很年轻,和照片相差比较大,并且上过3所大学,呆过两家同一个人开的公司并都倒闭了,非常有趣的经历。








评论

# re: Java Tips:使用Pattern.split替代String.split  回复  更多评论   

2009-05-22 12:21 by Sparkle
而实际上,如果你根本没想过用正则来split的话,StringTokenizer性能更高

# re: Java Tips:使用Pattern.split替代String.split  回复  更多评论   

2009-05-22 18:51 by dennis
@Sparkle
嗯,如果没用到正则的话,还是StringTokenizer最快,多谢提醒。

只有注册用户登录后才能发表评论。


网站导航: