要求是在Java中拆分字符串以便以下
“这个#{S}是#{S}一个#{S}字符串”
将导致以下数组
[ “这个”, “是”, “一”, “字符串”
正如您在此处所见,分隔符是字符序列“#{s}”。
使用现有工具执行此操作的最快捷有效的方法是什么?
我是否正确地假设使用正则表达式(String.split())有点浪费,因为我们使用静态字符串进行拆分?
我从这里得到了假设http://www.javamex.com/tutorials/regular_expressions/splitting_tokenisation_performance.shtml。 但我不能使用StringTokenizer,因为分隔符是一个char序列。
注意:目前我正在使用String.split()并且没有问题。这是纯粹的好奇心。
答案 0 :(得分:2)
比使用String.split
更快Pattern.split
:即,预先编译模式并将其存储以供后续使用。如果你一直使用相同的模式,并使用该模式进行大量拆分,那么将该模式放入静态字段或其他东西可能是值得的。
此外,如果您的模式包含 no 正则表达式元字符,则可以在创建模式时传入Pattern.LITERAL
。这是String.split
无法做到的事情。 :-P