2010-12-14 202 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