1.采用DFA算法实现
/**
* 敏感词过滤工具类
*
* @author maple
*/
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@SuppressWarnings({"unchecked", "rawtypes"})
public class SensitiveFilterUtil {
/**
* 敏感词集合
*/
public static HashMap sensitiveWordMap;
/**
* 初始化敏感词库,构建DFA算法模型
*/
public static void initContext(HashSet<String> set) {
initSensitiveWordMap(set);
}
/**
* 初始化敏感词库,构建DFA算法模型
*
* @param sensitiveWordSet 敏感词库
*/
private static void initSensitiveWordMap(Set<String> sensitiveWordSet) {
//初始化敏感词容器,减少扩容操作
sensitiveWordMap = new HashMap<String, String>(sensitiveWordSet.size());
Map<Object, Object> temp;
Map<Object, Object> newWorMap;
//遍历sensitiveWordSet
for (String key : sensitiveWordSet) {
temp = sensitiveWordMap;
for (int i = 0; i