前缀树:
(1)名称:Trie、字典树、查找树
(2)特点:查找效率高,消耗内存大
(3)应用:字符串检索、词频统计、字符串排序等
敏感词过滤器:
(1)定义前缀树
(2)根据敏感词,初始化前缀树
(3)编写过滤敏感词的方法
在resources下新建一个存放敏感词的文件sensitive-words.txt
赌博
嫖娼
吸毒
开票
在util包下新建一个SensitiveFilter类,加上@Component注解,并加上构造方法后初始化注解@PostConstruct来加载敏感词文件sensitive-words.txt。
@PostConstruct
public void init() {
try(
InputStream is = this.getClass().getClassLoader().getResourceAsStream("sensitive-words.txt"); //放在这个小括号里,编译的时候会自动finally
//获取类加载文件夹下resources下的sensitive-words.txt
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
){
String keyword;
while((keyword = reader.readLine()) != null){
// 添加到前缀树
this.addKeyword(keyword);
}
}catch(IOException e){
logger.error("过滤敏感词文件失败:" + e.getMessage());
}
}