String.split vs效率级别的StringTokenizer

Eyp*_*ros 1 java string split

我处理大规模数据集,因此我对分割a的最有效方法感兴趣String.

好吧,我发现Scanner vs. StringTokenizer vs. String.SplitJava中的字符串标记器,它几乎说明我不应该使用它StringTokenizer.

直到我在第二篇文章"字符串标记化表现"中检查了@Neil Coffey的实验图表后,我确信不会使用它:String.split()和StringTokenizer比较哪里StringTokenizer明显更快.

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

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

Ash*_*han 5

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

番石榴的分裂方法

例如:

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

for (String text : splitted) {
  System.out.println(text);
}
Run Code Online (Sandbox Code Playgroud)

输出:

一个
2
3