敏感词搜索和替换小框架
在中国当游戏程序员,恐怕迟早要遇到敏感词搜索和替换这个问题。我最近就遇到了这个问题,照例先上网搜索了一番,发现介绍各种算法的文章很多,但是能拿来直接用的代码几乎没有。所以我在github上创建了一个项目,设计了这么一个小框架。
Sensitive Word Killer框架首先介绍一下框架的大概设计
SensitiveWordSearchAlgorithmpublic class SimpleReplaceStrategy implements SensitiveWordReplaceStrategy { // 假设大部分敏感词不超过10个字 private static final int MAX_CHAR_COUNT = 10; // 预先计算好的字符串 private String[] replacements; public SimpleReplaceStrategy(final char replacement) { replacements = new String[MAX_CHAR_COUNT + 1]; replacements[0] = ""; for (int i = 1; i < replacements.length; i++) { replacements[i] = replacements[i - 1] + replacement; } } @Override public String replace(String sensitiveWord) { if (sensitiveWord.isEmpty()) { return sensitiveWord; } // 敏感词字数不超过MAX_CHAR_COUNT if (sensitiveWord.length() < MAX_CHAR_COUNT) { return replacements[sensitiveWord.length()]; } // 敏感词字数超过MAX_CHAR_COUNT return replacements[MAX_CHAR_COUNT]; } }总结Sensitive Word Killer的代码写的比较匆忙,但其目标是容易使用和可扩展。本来想把这篇博客写的很漂亮,但由于自己表达能力有限,最后成了罗列代码。希望这个小框架能被需要它的人看到,哪怕只是带给别人一点启发也就够了。