2015-11-03 72 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) –