2011-05-22 284 views
17

我試圖找到一種方法,將字符串分割成字符串(S)組成的數組,數組,我需要把它分解每當遇到一個白色的香料,例如字符串分割到字符串

「你好,我叫保羅」

到」

「喜」 「我」 「保羅」

如何使用RegularExpression表示split()方法中的空格?

+9

爲什麼你甚至需要正則表達式呢?你不能只是做'String [] myList = myString.split(「」);' – 2011-05-22 06:22:18

+1

有一個叫做Visual REGEXP(http://laurent.riesterer.free.fr/regexp/)的工具它可以幫助你可視化你的結果正則表達式(即perl regexp,但是或多或少,所有的lang都使用perl regexp,所以這不是問題) – Johan 2011-05-22 06:29:48

+1

「我對RegExp還沒有太多瞭解」 - 聽起來你需要補救,因爲問別人爲你編寫正則表達式是不可持續的。 – 2011-05-22 06:44:50

回答

47

您需要像"\\s+"這樣的正則表達式,意思是:在遇到至少一個空白時分裂。完整的Java代碼是:

try { 
    String[] splitArray = input.split("\\s+"); 
} catch (PatternSyntaxException ex) { 
    // 
} 
+0

也許你想要'\ w +'? – Gabe 2011-05-22 06:24:32

+0

@加貝:我不這麼認爲。他想要什麼,除了白人之外。例如,他希望將「我」中的撇號與我和米保持在一起。 – 2011-05-22 06:29:02

+0

哎呀,我的意思是'\ s +'! (就像你現在這樣) – Gabe 2011-05-22 06:45:42

7

String[] result = "hi i'm paul".split("\\s+");在一個或多個情況下分裂。

或者你可以看看Apache Common StringUtils。它有使用空格作爲分隔符分割字符串的StringUtils.split(String str)方法。它也有其他有用的實用方法