项目中需要过滤敏感词,可以使用字典树来构造一个敏感词树,然后在树上对文本内容进行字符串匹配。
@Service public class SensitiveWordService implements InitializingBean { private static Logger logger = LoggerFactory.getLogger(SensitiveWordService.class); @Override public void afterPropertiesSet() throws Exception{ try{ System.out.println(Thread.currentThread().getContextClassLoader()); InputStream is =Thread.currentThread().getContextClassLoader().getResourceAsStream("SensitiveWord"); InputStreamReader read = new InputStreamReader(is); BufferedReader bufferedReader = new BufferedReader(read); String lineTxt; while((lineTxt=bufferedReader.readLine())!=null){ addWord(lineTxt.trim()); System.out.println(lineTxt.trim()); } read.close(); }catch (Exception e){ logger.error("读取敏感词文件失败"+e.getMessage()); } } public class TreeNode{ private boolean end=false; private Map<Character,TreeNode> subNodes = new HashMap<Character,TreeNode>(); public void addSubNode(Character key,TreeNode node){ subNodes</