假设句子为There are playing, they are brothers.
无论如何将标点符号分隔为单字输出如下:
There are playing , they are brothers .
答案 0 :(得分:1)
这对我有用:
String str = "There are playing, they are brothers.";
System.out.println(str.replaceAll("\\s*([,.?!\"'])\\s*", " $1 "));
收率:
There are playing , they are brothers .
此正则表达式将替换任何标点符号,该标点符号可能具有带空格的前导/尾随空格,后跟相同的标点符号和另一个空格。此块:[,.?!\"']
表示您可以更改的所有标点符号。您可以添加/删除您的内容。 \W
标志也可以起作用,但它会改变一组特定字符(任何不是字母,数字或下划线的字符)。
答案 1 :(得分:0)
你可以试试正则表达式吗?
像:
s/(\w)([,.])/\1 \2/g
它本质上是一个非单词字符(可能是\ W),然后是找到的标点符号,替换为第1组,空格,第2组。
我做了一个演示,available here。