3.1过滤敏感词( 三 )

subNodes = new HashMap<>();//subNodes初始化为空public boolean isKeywordEnd() {return isKeywordEnd;}public void setKeywordEnd(boolean keywordEnd) {isKeywordEnd = keywordEnd;}// 添加子节点方法public void addSubNode(Character c, TrieNode node) {subNodes.put(c, node);}// 获取子节点public TrieNode getSubNode(Character c) {return subNodes.get(c);}}}
// 跳过特殊符号 解决的是
诸如此类结构,如开票是敏感词的话,则 有的特殊符号会打乱我们对敏感词的判断
// 判断是否为符号private boolean isSymbol(Character c) {// 0x2E80~0x9FFF 是东亚文字范围return !CharUtils.isAsciiAlphanumeric(c) && (c < 0x2E80 || c > 0x9FFF);}
4.新建测试类
package com.nowcoder.community;import com.nowcoder.community.util.SensitiveFilter;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringRunner;@RunWith(SpringRunner.class)@SpringBootTest@ContextConfiguration(classes = CommunityApplication.class)public class SensitiveTests {@Autowiredprivate SensitiveFilter sensitiveFilter;//注入待测试的@Testpublic void testSensitiveFilter() {String text = "这里可以赌博,可以嫖娼,可以吸毒,可以开票,哈哈哈!";text = sensitiveFilter.filter(text);System.out.println(text);text = "这里可以☆赌☆博☆,可以☆嫖☆娼☆,可以☆吸☆毒☆,可以☆开☆票☆,哈哈哈!";text = sensitiveFilter.filter(text);System.out.println(text);}}
运行结果