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

如何删除Java中单个单词后面的所有标点符号?,java,string,Java,String,我需要删除单词后面的标点符号。例如,word应更改为word,string:应更改为string 编辑:算法应该只删除字符串末尾的标点符号。字符串中的任何标点符号都应保留。例如,没有应该变成不您可以使用正则表达式修改字符串 String resultString = subjectString.replaceAll("([a-z]+)[?:!.,;]*", "$1"); 我不知道“结尾的“单词”在哪里,它被用作标点符号。因此,这个正则表达式将适用于您。使用接受正则表达式的方法replaceAl

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


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

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

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

我不知道
结尾的“单词”在哪里,它被用作标点符号。因此,这个正则表达式将适用于您。

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

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

标点符号是否可以显示在其他有效位置?比如说,如果你有一个词:test,那么这个标记会保留还是被替换?基本上,您是删除所有标记,还是仅删除单词末尾的标记?如果字符串包含单个单词,并且其目的是删除尾随标点符号,则表达式可以简化—OP没有澄清,但是…bobbymcr我打算仅删除尾随标点符号。在这种情况下,表达式如何简化?