String.split方法很常用,用于切割字符串,split传入的参数是正则表达式,它的内部是每次都comiple正则表达式,再调用Pattern.split方法:
因此,如果你调用String.split非常频繁的话,每次都重新编译正则表达式的代价很高,性能会受到很大影响,此时最好自己预编译Pattern,再调用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 );
}
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 );
// 替代为
static Pattern pattern = Pattern.compile( " " );
String []items = pattern.split(line, 0 );
PS.今天支付宝的蔡学镛大师到公司演讲,做的是《关于我的IT学习生活》的主题讲座,介绍了他的经历和经验,留下深刻印象的是他看起来很年轻,和照片相差比较大,并且上过3所大学,呆过两家同一个人开的公司并都倒闭了,非常有趣的经历。
文章转自庄周梦蝶 ,原文发布时间2009-05-21