如何获得单词(String)?

时间:2014-01-07 12:15:25

标签: java string

我正在创建一个可以过滤坏词的聊天应用程序,例如,ass。因此,如果使用“你的脸看起来像屁股”类型,结果将是“你的脸看起来像”。代码是

String msg = e.getMessages();

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

因此,如果用户键入包含ass的单​​词,例如glass,我的代码将删除ass并仅变为gl。那么,我想知道如何逐字检测并删除列表中的坏词?

3 个答案:

答案 0 :(得分:4)

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

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

您可以在this excellent tutorial中阅读有关字边界的更多信息。

答案 1 :(得分:1)

你可以使用正则表达式,它非常强大。例如,如果您只想将“屁股”作为单词,则可以使用"/^ass$/",因此您可以编写它:

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

答案 2 :(得分:0)

String msg = e.getMessages();
String[] msgParts = e.getMessages().split(" ");
StringBuilder filteredMessage = new StringBuilder();
for (String msgPart : mstParts){
  if (!msgPart.trim().toLower().equals("[string to be filtered]")){
       filteredMessage.append(msgPart).append(" ");
  }
}
msg = filteredMessage.toString();
// further code continues