public
class
sensitivewordinit
// 將敏感詞庫加入到hashmap中
addsensitivewordtohashmap(keywordset);
}catch (exception e)
return sensitivewordmap;
}/**
* 封裝敏感詞庫
**@param keywordset
*/@suppresswarnings("rawtypes")
private
void
addsensitivewordtohashmap(setkeywordset)
else
// 如果該字是當前敏感詞的最後乙個字,則標識為結尾字
if (i == key.length() - 1)
system.out.println("封裝敏感詞庫過程:"+sensitivewordmap);
}system.out.println("檢視敏感詞庫資料:" + sensitivewordmap);}}
}
public
class
sensitivewordengine
return sensitivewordengine.sensitivewordmap.size();
}/**
* 是否包含敏感詞
**@param txt
*@param matchtype
*@return
*/public
static
boolean
iscontaintsensitiveword(string txt, int matchtype)
}return flag;
}/**
* 獲取敏感詞內容
**@param txt
*@param matchtype
*@return 敏感詞內容
*/public
static setgetsensitiveword(string txt, int matchtype)
}return sensitivewordlist;
}/**
* 替換敏感詞
**@param txt
*@param matchtype
*@param replacechar
*@return
*/public
static string replacesensitiveword(string txt, int matchtype, string replacechar)
return resulttxt;
}/**
* 替換敏感詞內容
**@param replacechar
*@param length
*@return
*/private
static string getreplacechars(string replacechar, int length)
return resultreplace;
}/**
* 檢查敏感詞數量
**@param txt
*@param beginindex
*@param matchtype
*@return
*/public
static
intchecksensitiveword(string txt, int beginindex, int matchtype)}}
else
}if (!flag)
return matchflag;
}public
static
void
main(string args)
Java Web 敏感詞過濾演算法
1.dfa演算法 dfa演算法的原理可以參考這裡,簡單來說就是通過map構造出一顆敏感詞樹,樹的每一條由根節點到葉子節點的路徑構成乙個敏感詞,例如下圖 簡單實現如下 public class textfilterutil 構建敏感詞庫 param keyword private static voi...
Java Web敏感詞過濾演算法
1.dfa演算法 dfa演算法的原理可以參考 這裡 簡單來說就是通過map構造出一顆敏感詞樹,樹的每一條由根節點到葉子節點的路徑構成乙個敏感詞,例如下圖 簡單實現如下 public class textfilterutil 構建敏感詞庫 param keyword private static vo...
敏感詞過濾演算法實現
說到敏感詞過濾,我也覺得這裡沒有必要寫這個文章,因為前人已經前前後後有過很多種演算法解決該問題。這裡我之所以寫這個文章,是因為我自己自創了一種演算法 真的是自創哦,因為我在寫這個演算法的時候,完全是自己想出來的方式,沒有借鑑任何 靈感來自於一篇文章中的一句話 如果能掃瞄一遍文字就能將所有的詞找出來,...