如何删除Java中单个单词后面的所有标点符号?

时间:2011-11-13 23:33:32

标签: java string

我需要删除一个单词后面的标点符号。例如,word?!应更改为wordstring:应更改为string

编辑:算法应该只删除字符串末尾的标点符号。字符串中的任何标点都应该保留。例如,doesn't;应该变为doesn't

2 个答案:

答案 0 :(得分:6)

使用接受正则表达式的方法replaceAll(...)

String s = "don't.  do' that! ";
s = s.replaceAll("(\\w+)\\p{Punct}(\\s|$)", "$1$2");
System.out.println(s);

答案 1 :(得分:2)

您可以使用正则表达式修改字符串。

String resultString = subjectString.replaceAll("([a-z]+)[?:!.,;]*", "$1");

我知道最后'位于哪里的“单词”,它被用作标点符号。所以这个正则表达式适合你。