java - String.split 与 StringTokenizer 在效率级别上的对比

标签 java string split

我在处理大型数据集,因此我对拆分 String 的最有效方法很感兴趣。

我发现 Scanner vs. StringTokenizer vs. String.Splitstring tokenizer in Java这几乎表明我不应该使用 StringTokenizer

在我查看第二篇文章中的@Neil Coffey 的 实验图表之前,我确信不会使用它 Performance of string tokenisation: String.split() and StringTokenizer compared其中 StringTokenizer 明显更快。

所以我的问题是我不应该使用一个类,因为它是遗留的(正如官方声明的那样),或者我应该改用它吗?我必须承认效率在我的项目中足够重要。 String.split 不应该至少相当快吗?

还有其他快速字符串拆分替代方法吗?

最佳答案

Google Guava 库中提供了一种高效且功能更丰富的字符串拆分方法。

Guava's split method

例如:

Iterable<String> splitted = Splitter.on(',')
    .omitEmptyStrings()
    .trimResults()
    .split("one,two,,   ,three");

for (String text : splitted) {
  System.out.println(text);
}

输出:

一个
两个

关于java - String.split 与 StringTokenizer 在效率级别上的对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23930290/

相关文章:

java - 从二叉树中删除未正确表示的叶子

java - java中的sun.security.action.GetPropertyAction类

list - 使用 Haskell 将列表拆分为长度为 2^0、2^1、...、2^N 的元组列表

python - 为什么 bin(x).count ('1' ) 比 x &= x-1 快?

Python:如何将一个字符串分成多个字符串

python - 拆分,将数据映射到 Pandas 数据框中的两列中

java - 使用 Log4J 2 以编程方式配置记录器?

java - 如何从 for 循环中返回值?

python - 如何在Python中从文件列表中提取字符串?

python - 从与索引对齐的两个 pandas 系列中获取非空字符串值的有效方法