今天游戏正好用到需要过滤敏感词将出现的敏感词替换成*,在网上找了许久找了一片可用的java版本的DFA算法,最后费了一番功夫将其思路用C#实现,里面的注释甚至都没改动的,这里直接上代码,这里不借助任何第三方工具,复制粘贴就是用
当然想看原博客的点击这里
using UnityEngine;
using System.Collections.Generic;
public class Test : MonoBehaviour
{
public TextAsset txt;
private void Start()
{
}
private void Update()
{
if (Input.GetKeyDown("x")) {
string str = "后来的啊微信哈哈嘀嘀嘀微信qqwx呼呼呵呵";
HashSet<string> set = ReadTxtByLine(txt);
Dictionary<object, object> map = AddBadWordToHashMap(set);
string set1 = GetBadWord(str, 2, map);
print(set1);
}
}
private HashSet<string> ReadTxtByLine(TextAsset file) {
//使用换行和回车符分割敏感词
string[] str = file.text.Split('\n','\r');
Ha