System.Text.StringBuilder sb = newSystem.Text.StringBuilder(text.Length); |
stringfilterText = "需要过滤的脏字 以|分开";//脏字 可根据自己的方式用分隔符 |
string[] filterData = filterText.Split(‘|‘); |
foreach(var item infilterData) |
if(dicList.ContainsKey(value)) |
dicList[value].Add(item); |
dicList.Add(value, newList<string>() { item }); |
for(inti = 0; i < count; i++) |
if(dicList.ContainsKey(word))//如果在字典表中存在这个key |
intnum = 0;//是否找到匹配的关键字 1找到0未找到 |
var data = dicList[word].OrderBy(g => g.Length);//把该key的字典集合按 字符数排序(方便下面从少往多截取字符串查找) |
foreach(var wordbook indata) |
if(i + wordbook.Length <= count)//如果需截取的字符串的索引小于总长度 则执行截取 |
stringresult = text.Substring(i, wordbook.Length);//根据关键字长度往后截取相同的字符数进行比较 |
sb.Append(GetString(result)); |
i = i + wordbook.Length - 1;//比较成功 同时改变i的索引 |
/// <param name="value"></param> |
privatestatic string GetString(stringvalue) |
stringstarNum = string.Empty; |
for(inti = 0; i < value.Length; i++) |
//该代码片段来自于: http://www.sharejs.com/codes/csharp/5486 |
C # Sensitive keywords filter code