定義字首樹
字首樹的定義只在,過濾敏感詞當中用到,故將其定義為乙個內部類
//字首樹
private
class
trienode
public
void
setkeywordend
(boolean keywordend)
//新增子節點
public
void
addsubnode
(character c,trienode node)
//獲取子節點
public trienode getsubnode
(character c)
}
上述定義最妙的是,屬性當中子節點的定義方式private mapsubnodes = new hashmap<>();
,直接形成了樹的結構,值得細品。
根據敏感詞,初始化字首樹
@postconstruct
public
void
init()
}catch
(ioexception e)
}
新增@postconstruct註解使其在構造方法執行前就完成載入
編寫將乙個敏感詞新增到字首樹中的方法
//將乙個敏感詞新增到字首樹中
private
void
addkeyword
(string keyword)
//指向子節點進入下一迴圈
tempnode = subnode;
//設定結束標識
if(i == keyword.
length()
-1)}
}
編寫過濾敏感詞的方法
/**
* 過濾敏感詞
* @param text 待過濾文字
* @return 過濾後文字
*/public string filter
(string text)
//指標1
trienode tempnode = rootnode;
//指標2
int begin =0;
//指標3
int position =0;
//結果
stringbuilder sb =
newstringbuilder()
;while
(position < text.
length()
)//無論符號在開頭或中間,指標3都向下走一步
position++
;continue;}
//檢查下級節點
tempnode = tempnode.
getsubnode
(c);
if(tempnode == null)
else
if(tempnode.iskeywordend)
else
}//將最後一批字元計入結果
sb.(text.
substring
(begin));
return sb.
tostring()
;}
上述過濾方法排除了特殊符號的干擾,當中涉及的判斷是否為特殊字元的方法如下:
//判斷是否為符號
private
boolean
issymbol
(character c)
牛客網社群專案 p3 9統一異常處理
首先將錯誤頁面資料夾error放到template資料夾下 404錯誤頁面只需配置.html檔案即可,若使用者路徑輸錯,自動會呼叫顯示 500錯誤是伺服器短的錯誤,對它的處理如下所示 首先在homecontroller下新建乙個請求 path error method requestmethod.g...
牛客網社群專案 2 6開發登入退出功能
首先將登入憑證封裝成乙個類loginticket public class loginticket public inte ce options usegeneratedkeys true keyproperty id int insertloginticket loginticket logint...
牛客網社群專案 P2 8賬號設定之上傳檔案
請求 必須是post請求 表單 enctype multipart form data springmvc 通過multipartfile處理上傳檔案 前端部分,已寫好 html 檔案 path upload method requestmethod.post public string uploa...