将字符序列拆分为分隔符

时间:2010-12-14 04:30:29

标签: java

要求是在Java中拆分字符串以便以下

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

将导致以下数组

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

正如您在此处所见,分隔符是字符序列“#{s}”。

使用现有工具执行此操作的最快捷有效的方法是什么?

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

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

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

1 个答案:

答案 0 :(得分:2)

比使用String.split更快Pattern.split:即,预先编译模式并将其存储以供后续使用。如果你一直使用相同的模式,并使用该模式进行大量拆分,那么将该模式放入静态字段或其他东西可能是值得的。

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