ゲームで特定の単語がチャットされないように検閲しようとしています。唯一の問題は、プレイヤーが単語に追加することで検閲を無効にできることです。これが例です。
//Check for rude words before sending to server
List<String> tokens = new ArrayList<String>();
tokens.add("bilbo");
tokens.add("baggins");
tokens.add("in");
tokens.add("the");
tokens.add("shire");
String patternString = "\\b(" + StringUtils.join(tokens, "|") + ")\\b";
Pattern pattern = Pattern.compile(patternString);
Matcher findRudeWords = pattern.matcher(result.toLowerCase());
while (findRudeWords.find()) {
//Replace the bad word with astericks
String asterisk = StringUtils.leftPad("", findRudeWords.group(1).length(), '*');
result = result.replaceAll("(?i)" + findRudeWords.group(1), asterisk);
}
残っている問題は、誰かが bilbobaggins を間にスペースなしで言った場合、私の検閲は簡単に回避できるということです. 単語をチェックするだけではない十分な検閲をどのように行うことができますか?