字典树遍历实现字符串敏感词替换
何为字典树? 字典树(Trie树),又称前缀树,一种Hash树的变种,用于统计,排序和保存大量的 字符串,利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较 利用字典树对大段文字进行搜索,查找敏感词并进行打码替换 将敏感词词库以字符的形式保存到字典树中,例如敏感词词库中包含了“色情”、“赌博”、“暴力”,则需要生成这么一棵树: 其中根节点不对应任何字符,尾部节点进行标记,表示这是一个词的结尾。 删选敏感词时,对大段文字进行遍历,同时在字典树中进行查找匹配,找到文字中的敏感词并将敏感词替换为“***”符号,以下是详细代码 构造字典树 构造方案是构建一个Node类来表示各节点,Node的成员变量是一个保存有各子节点的Map,key为单个字符,value为子节点Node: //字典树节点,其中包含一个Map,该Map保存了所有子节点,key为节点对应的字符 private class TrieNode{ private boolean end = false; private Map<Character, TrieNode> subNodes = new HashMap<>(); private void addSubNode(Character key, TrieNode node){ subNodes.put(key, node); } private