这是我的应用程序中的当前代码:
String[] ids = str.split("/");
在分析应用程序时,字符串拆分所花费的时间不可忽略。另外,split
方法采用正则表达式,这里是多余的。
我可以使用什么替代方法来优化字符串拆分? StringUtils.split
更快吗?
(我会尝试并测试自己,但分析我的应用程序需要很多时间。)
最佳答案
String.split(String)
如果您的模式只有一个字符长,则不会创建正则表达式。按单个字符拆分时,它将使用非常有效的专用代码。 StringTokenizer
在这种特殊情况下并没有快多少。
这是在 OpenJDK7/OracleJDK7 中引入的。 Here's a bug report和 a commit .我做了一个simple benchmark here .
$ java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
$ java Split
split_banthar: 1231
split_tskuzzy: 1464
split_tskuzzy2: 1742
string.split: 1291
StringTokenizer: 1517
关于Java拆分字符串表现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11001330/