DFA简介
DFA全称为:Deterministic Finite Automaton,即确定有穷自动机。(自己百度吧)
直接代码:
敏感词实体类
package com.nopsmile.dfa;
public class Keywords {
private String pid;
private String Content;
public Keywords() {
}
public Keywords(String content) {
super();
Content = content;
}
public String getContent() {
return Content;
}
public void setContent(String content) {
Content = content;
}
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
}
敏感词库初始化
package com.nopsmile.dfa;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 敏感词库初始化
*
*/
public class SensitiveWordInit{
/**
* 敏感词库
*/
public HashMap sensitiveWordMap;
/**
* 初始化敏感词 keywords
*/
public Map initKeyWord(List sensitiveWords) {
try {
// 从敏感词集合对象中取出敏感词并封装到Set集合中
Set keyWordSet = new HashSet();
for (Keywords s : sensitiveWords) {
keyWordSet.add(s.getContent().trim());
}
// 将敏感词库加入到HashMap中
addSensitiveWordToHashMap(keyWordSet);
} catch (Exception e) {
e.printStackTrace();
}
return sensitiveWordMap;
}
/**
* 封装敏感词库
*/
private void addSensitiveWordToHashMap(Set keyWordSet) {
// 初始化HashMap对象并控制容器的大小
sensitiveWordMap = new HashMap(keyWordSet.size());
// 敏感词
String key = null;
// 用来按照相应的格式保存敏感词库数据
Map nowMap &