0
我在Java中放置了一個基本的褻瀆過濾器來檢測用戶輸入的褻瀆。我不想處理所有可能的情況,我知道這可能無法用電腦解決。但是,我確實想要處理一些計算機應該適合處理的基本場景。在這種特殊情況下,我試圖檢測用戶試圖通過在字母之間使用空格來打破過濾器。例如:「你好,我在這裏使用一個簡單的詞」。 (smurf在這裏是「壞」字)。刪除字母之間的空格
在我目前的實現我保持我覈對輸入文本的單詞列表:
public boolean containsBadWords (String text) {
for (String word : badWords) {
if (text.matches (".*\\b" + word +"\\b.*")) {
return (true);
}
}
return (false);
}
但這不會處理我上述的間隔字母的問題。
任何人都知道如何使用Java摺疊這些單詞,所以我可以使用基本的文本匹配算法處理它們?
那麼,你的問題是什麼? – drvdijk
刪除句子中的所有空格並搜索邪惡的子字符串。雖然會發現一些誤報。 – zapl
這似乎不是一個基本的案例......但是想到的可能不是最好的。比較每個字符以查看它是否爲空白。如果是,則保存該字符的位置以及該字符的任何位置,從字符串中刪除所有空格,查看該字符串是否包含壞字,如果不是,則替換所有空白。 – 2013-07-27 00:22:53