我在java中组合了一个基本的亵渎过滤器来检测用户输入的亵渎。我并不是要处理所有可能的情况,我知道这些情况可能仅使用计算机是不可能解决的。但是,我确实想处理一些计算机应该适合处理的基本场景。在这种特殊情况下,我试图检测一个用户试图通过使用字母之间的空格来破坏过滤器。例如:“你好,我在这里使用 asmurf 词”。(蓝精灵在这里是“坏”词)。
在我当前的实现中,我保留了我检查输入文本的单词列表:
public boolean containsBadWords (String text) {
for (String word : badWords) {
if (text.matches (".*\\b" + word +"\\b.*")) {
return (true);
}
}
return (false);
}
但这不会处理我上面描述的空格字母问题。
任何人都知道如何使用 Java 折叠这些单词,以便我可以使用基本的文本匹配算法来处理它们?