Java拆分字符串表现

标签 java string performance optimization split

这是我的应用程序中的当前代码:

String[] ids = str.split("/");

在分析应用程序时,字符串拆分所花费的时间不可忽略。另外,split 方法采用正则表达式,这里是多余的。

我可以使用什么替代方法来优化字符串拆分? StringUtils.split 更快吗?

(我会尝试并测试自己,但分析我的应用程序需要很多时间。)

最佳答案

String.split(String) 如果您的模式只有一个字符长,则不会创建正则表达式。按单个字符拆分时,它将使用非常有效的专用代码。 StringTokenizer 在这种特殊情况下并没有快多少。

这是在 OpenJDK7/OracleJDK7 中引入的。 Here's a bug reporta 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/

相关文章:

java - Spring TaskExecutor 实现

java - 使用 AJAX 和 JSP 创建动态表

用于在数组中连接匹配索引字符串的 PHP 函数?

java - 如何在 webdriver 中捕获页面发出的所有请求? Browsermob有什么替代品吗?

java - 跟踪中提到的最顶行是否总是抛出空值?

string - Yii2 中 Null 到空字符串

java - 在引号外用逗号分割

javascript - 为什么 webAssembly 函数比相同的 JS 函数慢近 300 倍

javascript - 如何将以下数组数据分组到上述结构中?

java - JIT 编译器和内部循环