c#

位置:IT落伍者 >> c# >> 浏览文章

关于.NET髒字过滤的算法代码


发布日期:2023年11月28日
 
关于.NET髒字过滤的算法代码

关于NET髒字过滤的算法代码我这里测试的时候RegEx要快一倍左右但是还是不太满意应为我们网站上髒字过滤用的相当多对效率已经有了一些影响经过一番思考后自己做了一个算法在自己的机器上测试了一下使用原文中的髒字库xc的字符串长度次循环文本查找耗时msRegEx用了ms而我的算法只用了ms

主要算法如代码所示

以下是引用片段

privatestaticDictionarydic=newDictionary();

privatestaticBitArrayfastcheck=newBitArray(charMaxValue);

staticvoidPrepare()

{

string[]badwords=//readfromfile

foreach(stringwordinbadwords)

{

if(!dicContainsKey(word))

{

dicAdd(wordnull);

maxlength=MathMax(maxlengthwordLength);

intvalue=word[];

fastcheck[word[]]=true;

}

}

}

使用的时候 以下是引用片段

intindex=;

while(index<targetLength)

{

if(!fastcheck[target[index]])

{

while(index<targetLength&&!fastcheck[target[++index]]);

}

for(intj=;j<MathMin(maxlengthtargetLengthindex);j++)

{

stringsub=targetSubstring(indexj);

if(dicContainsKey(sub))

{

sbReplace(sub***indexj);

index+=j;

break;

}

}

index++;

}

我们在遇到问题的时候不要一味地去借用别人的代码有时候动动脑筋说不定有意外的惊喜!               

上一篇:.Net基础Lambda表达式的一般应用教程

下一篇:.NET中容易混淆的几组重要概念