Stringtokenizer跟split
Stringtokenizer和split建议:Java代码?/**???*??ttStringTokenizer/tt?is?a?legacy?class?that?is?ret
Stringtokenizer和split
建议:Java代码
- ?/**??
- ?*??<tt>StringTokenizer</tt>?is?a?legacy?class?that?is?retained?for?
- ?*?compatibility?reasons?although?its?use?is?discouraged?in?new?code.?It?is?
- ?*?recommended?that?anyone?seeking?this?functionality?use?the?<tt>split</tt>?
- ?*?method?of?<tt>String</tt>?or?the?java.util.regex?package?instead.?
- *?
- */??
- ??
- 翻译后:??
- StringTokenizer是一个历史遗留的类,尽管不鼓励在新代码中使用,但因为兼容性的原因还是被保留下来了。推荐大家在String类的split方法或java.util.regex包中寻找这个功能来替代。??
因为String.split(String regExp)的实质是Pattern.compile(regex).split(this, limit),而Pattern.compile(regex)花费的代价是很大的。如果多次要调用同一个Pattern对象,则可以先预编译好Pattern,然后反复使用该Pattern对象。比如:Java代码
- for?(String?v:?strList)?{??
- ???v.split("a*b");??
- }??
可以改为:Java代码
- Pattern?p?=?Pattern.compile("a*b");??
- for?(String?v:strList)?{??
- ???p.split(v,0);?
- }??
这样就可以避免在循环中多次编译构建pattern对象。