原理
将敏感词存入前缀树中,使用前缀树来过滤待处理的字符串。
代码实现如下
package com.gyc.community.util;
import com.sun.org.apache.bcel.internal.generic.FSUB;
import org.apache.commons.lang3.CharUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
@Component
public class SensitiveFilter {
private static final Logger logger = LoggerFactory.getLogger(SensitiveFilter.class);
//替换符
private static final String REPLACEMENT = "***";
//根节点
private TrieNode rootNode = new TrieNode();
@PostConstruct
public void init(){
try(
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("sensitive-words.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));)
{