这是我的应用程序中的当前代码:
String[] ids = str.split("/");
在分析应用程序时,字符串分割花费了不可忽视的时间。另外,split
方法采用正则表达式,这在这里是多余的。
我可以使用什么替代方法来优化字符串分割?是StringUtils.split
faster?
(我会尝试并测试自己,但分析我的应用程序需要花费很多时间。)
String.split(String)
如果您的模式只有一个字符长,则不会创建正则表达式。当按单个字符分割时,它将使用专门的代码,效率非常高。StringTokenizer
在这种特殊情况下并没有快多少。
这是在 OpenJDK7/OracleJDK7 中引入的。这是错误报告 https://bugs.java.com/bugdatabase/view_bug?bug_id=6840246 and a commit http://hg.openjdk.java.net/jdk7/jdk7/jdk/rev/1ff977b938e5。我做了一个简单的基准在这里 https://gist.github.com/2923321.
$ 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)