2012-11-28 89 views
2

我一直使用myString.split("\\s+");来获取每个单词。但现在我想分开逗号和句号。例如:Java将字符串拆分成逗号和句号

妈妈总是说生活就像一盒巧克力,你永远不知道你会得到什么。

到:

{Mama, always, said, life, was, like, a, box, of, chocolates ,,, You, never, know, what, you're, gonna, get,.,} 

如何将一个去这样做呢?

回答

8

如果逗号和句号总是跟空格或字符串结束,那么你可以这样写:

myString.split("(?=[,.])|\\s+"); 

如果他们没有,你想如a,b被划分成三个字符串,然后:

myString.split("(?<=[,.])|(?=[,.])|\\s+"); 
+0

谢谢你的工作 – Reg

+0

@JackBilbo:不客气! – ruakh

+0

@downvoter:小心解释为什么? – ruakh

2

你可以使用一个lookahead点和逗号之前分裂,太:

myString.split("\\s+|(?=[,.])"); 

即先行不包括在实际的比赛,所以实际的字符(逗号或句号)将在结束结果数组。

+0

我也尝试这样做,得到了相同的结果 – Reg

+0

@JackBilbo以及它是相同的解决方案)。但请继续并接受ruakh的回答,看到他的第二个解决方案还处理在逗号或句号之后没有空格的情况。 –