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

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

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

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

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

我知道没有“单词”在最后的位置,它被用作标点符号。 所以这个正则表达式对你有用。

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

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