Java 如何仅获取单词(字符串)?

Java 如何仅获取单词(字符串)?,java,string,Java,String,我正在创建一个聊天应用程序,它会过滤一些不好的词,例如ass。因此,如果使用“yourface look like ass”,结果将是“yourface look like”。代码是 String msg = e.getMessages(); if(msg.contains("ass")) { String aaa = msg.replace("ass", ""); //my code here to show msg } 所以,如果用户键入一个包含ass的单词,例如glas

我正在创建一个聊天应用程序,它会过滤一些不好的词,例如ass。因此,如果使用“yourface look like ass”,结果将是“yourface look like”。代码是

String msg = e.getMessages();

if(msg.contains("ass"))
{
    String aaa = msg.replace("ass", "");
    //my code here to show msg
}

所以,如果用户键入一个包含ass的单词,例如glass,我的代码将删除ass并成为gl only。因此,我想知道如何逐字检测并删除列表中的坏单词?

如果您只想替换整个单词,可以使用正则表达式而不是普通字符串,以及单词边界(
\\b
)如下所示:

String aaa = msg.replaceAll("\\bass\\b", "");

您可以在中阅读有关单词边界的更多信息。

您可以使用正则表达式,它非常强大。例如,如果您只想将“ass”作为一个单词,您可以使用
“/^ass$/”
,这样您就可以编写它:

String aaa = msg.replaceAll("/^ass$/", "");

用一无所有的东西代替别人的屁股是不人道的。--回答这个问题。我希望这只是一个练习,因为有很多方法可以绕过过滤器。我有一个解决方案,但它只适用于vaccum@Jeremy:“-”-回答问题“FWIW,那是粗鲁的表现。这是一种正常的表达方式,很有效!!!谢谢我希望现在我的聊天室里不会有人说蠢话
String aaa = msg.replaceAll("/^ass$/", "");