2015-11-03 67 views
0

所以我有一個文件,我寫入數組。我想通過把它分成更小的字符串來解析字符串。我已經用split(「\ s +」)將字符串從另一個字符串中分隔出來了。不過,我想還包括(";,.\n:()")作爲分隔符。有人能幫我嗎?我試過split(".,;:\n()\\s+"),但這樣做會產生錯誤的結果。拆分()與多個分隔符(不工作)

回答

3

做這樣的,

str.split("[.,;:\\n()]|\\s+"); 

字符類應採取每個令牌作爲單獨的分隔符。以上應該根據字符類中存在的字符中存在的字符進行分割,或者將分割爲一個或多個空格字符。

由於\\s也匹配\\n,我只是結合了這兩種..

str.split("[.,;:()\\s]+"); 
+0

完美無缺。背後用括號括起來的原因是什麼? – FutureUIUXDeveloper

+0

@FutureUIUXDeveloper沒有'+','foo()bar'會產生'foo','empty','empty','bar'。加上,它應該產生'foo','bar'。即它會分裂字符類中的一個或多個字符。 –

+0

@FutureUIUXDeveloper [接受,如果我的答案似乎有幫助..](http://stackoverflow.com/help/accepted-answer) –