我正在创建一个可以过滤坏词的聊天应用程序,例如,ass。因此,如果使用“你的脸看起来像屁股”类型,结果将是“你的脸看起来像”。代码是
String msg = e.getMessages();
if(msg.contains("ass"))
{
String aaa = msg.replace("ass", "");
//my code here to show msg
}
因此,如果用户键入包含ass的单词,例如glass,我的代码将删除ass并仅变为gl。那么,我想知道如何逐字检测并删除列表中的坏词?
答案 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