2011-09-20 102 views
21

我想根據所有可能的分隔符(如逗號,冒號,分號,句號,空格,hiphens等)來解析整個文件。Java string.split - 由多個字符分隔符

假設我有一個假想的字符串行「Hi,X How-how:any you?」我應該得到輸出數組的項目嗨,X,如何,如何,是,你和你。

如何在String.split方法中指定所有這些分隔符?

在此先感謝。

回答

23

String.split需要一個正則表達式,在這種情況下,你要非單詞字符(正則表達式\W)是分裂,所以它只是:

String input = "Hi,X How-how are:any you?"; 
String[] parts = input.split("[\\W]"); 

如果你想更明確,你可以使用表達式中的確切字符:

String[] parts = input.split("[,\\s\\-:\\?]"); 
+0

爲什麼上面表達式中的or運算符?他們有必要嗎? –

+0

@ Hovercraft - 不,但對我來說,閱讀起來更容易,所以這就是我的目標。 –

+0

@Mark是否\ W正則表達式將數字視爲非單詞字符?如果我想允許號碼怎麼辦? – u449355