2010-12-14 162 views
1

的要求是在Java中拆分字符串,以便以下分割字符串的字符序列作为分隔符

“这个#{S}是#{S}一#{S}字符串”

会导致以下数组

在[“这个”,“是”,“一”,“字符串”]

正如这里可以看到的分隔符是字符序列“#{S}”。

使用现有工具做到这一点的最快和最有效的方法是什么?

我是否正确地认为使用正则表达式(String.split())有点浪费,因为我们正在使用静态字符串进行分割?

我从这里得到了http://www.javamex.com/tutorials/regular_expressions/splitting_tokenisation_performance.shtml的假设。 但我不能使用StringTokenizer,因为分隔符是一个char序列。

注意:目前我使用String.split()并没有问题。这纯粹是好奇心。

回答

2

比使用String.split更快的速度是Pattern.split:即,预编译模式并存储以供后续使用。如果您始终使用相同的模式,并使用该模式进行大量分割,则可能需要将该模式放入静态字段或其他内容中。

此外,如果您的模式包含正则表达式元字符,则可以在创建模式时传入Pattern.LITERAL。这是你不能用String.split做的事情。 :-P