最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

asp.NET 臟字過濾算法

 更新時間:2009年10月25日 10:15:24   作者:  
asp.NET 臟字過濾算法,需要參考上一篇文章,大家可以比較下。
原文見http://www.fzitv.net/article/20575.htm
但在我這里測試的時候,RegEx要快一倍左右。但是還是不太滿意,因為我們網(wǎng)站上臟字過濾用的相當(dāng)多,對效率已經(jīng)有了一些影響,經(jīng)過一番思考后,自己做了一個算法。在自己的機(jī)器上測試了一下,使用原文中的臟字庫,0x19c的字符串長度,1000次循環(huán),文本查找耗時1933.47ms,RegEx用了1216.719ms,而我的算法只用了244.125ms.
更新:新增一個BitArray,用于判斷某char是否在所有臟字中出現(xiàn)過??倳r間由244ms降到了34ms.
主要算法如代碼所示
復(fù)制代碼 代碼如下:

private static Dictionary dic = new Dictionary();
private static BitArray fastcheck = new BitArray(char.MaxValue);
static void Prepare()
{
string[] badwords = // read from file
foreach (string word in badwords)
{
if (!dic.ContainsKey(word))
{
dic.Add(word, null);
maxlength = Math.Max(maxlength, word.Length);
fastcheck[word[0]] = true;
}
}
}

使用的時候
復(fù)制代碼 代碼如下:

int index = 0;
while (index < target.Length)
{
if (!fastcheck[target[index]])
{
while (index < target.Length - 1 && !fastcheck[target[++index]]) ;
}
for (int j = 0; j < Math.Min(maxlength, target.Length - index); j++)
{
string sub = target.Substring(index, j);
if (dic.ContainsKey(sub))
{
sb.Replace(sub, "***", index, j);
index += j;
break;
}
}
index++;
}

相關(guān)文章

  • ASP.NET 文件斷點續(xù)傳實現(xiàn)代碼

    ASP.NET 文件斷點續(xù)傳實現(xiàn)代碼

    在文件下載的時候,使用斷點續(xù)傳可以將上次未下載完成的文件繼續(xù)下載,該功能在開發(fā)文件下載的時候非常重要。這里我將介紹一種比較簡單的斷點續(xù)傳功能的實現(xiàn)方法,僅供初學(xué)者參考使用
    2012-06-06
  • 從請求管道深入剖析HttpModule的實現(xiàn)機(jī)制圖文介紹

    從請求管道深入剖析HttpModule的實現(xiàn)機(jī)制圖文介紹

    想要了解底層的原理必須對請求處理過程和頁面的生命周期有點了解才方便您入門學(xué)習(xí)一下內(nèi)容,本文將詳細(xì)介紹
    2012-11-11
  • Repeater控件動態(tài)變更列(Header,Item和Foot)信息(重構(gòu)cs)

    Repeater控件動態(tài)變更列(Header,Item和Foot)信息(重構(gòu)cs)

    上一篇雖然它算不上是完全動態(tài)化,但它已經(jīng)達(dá)到初期想要的效果,現(xiàn)另開一篇,不是重新另外寫,而是想重構(gòu)cs的代碼,因為前一篇的代碼雖然簡單,但代碼冗余過多,感興趣的朋友可以參考下哈
    2013-03-03
  • ASP.NET服務(wù)器控件的生命周期分析

    ASP.NET服務(wù)器控件的生命周期分析

    這篇文章主要介紹了ASP.NET服務(wù)器控件的生命周期分析,較為詳盡的講述了asp.net服務(wù)器控件的運(yùn)行原理與過程,有助于深入了解asp.net程序的運(yùn)行原理,需要的朋友可以參考下
    2014-11-11
  • DropDownList根據(jù)下拉項的Text文本序號排序

    DropDownList根據(jù)下拉項的Text文本序號排序

    在某些時候表中沒有可以排序的字段同時呢也不想修改表結(jié)構(gòu),但它的項文本有序號這時就可以用這方法排序,感興趣的你可以參考下,或許本文知識點對你有所幫助
    2013-03-03
  • ASP.NET用戶注冊實戰(zhàn)(第11節(jié))

    ASP.NET用戶注冊實戰(zhàn)(第11節(jié))

    這篇文章主要介紹了ASP.NET用戶注冊實戰(zhàn),鞏固前10小節(jié)所學(xué)的全部知識,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • ASP.NET MVC的四種驗證編程方式

    ASP.NET MVC的四種驗證編程方式

    ASP.NET MVC采用Model綁定為目標(biāo)Action生成了相應(yīng)的參數(shù)列表,但是在真正執(zhí)行目標(biāo)Action方法之前,還需要對綁定的參數(shù)實施驗證以確保其有效性,我們將針對參數(shù)的驗證成為Model綁定,需要的朋友可以參考下
    2015-10-10
  • ASP.Net中防止刷新自動觸發(fā)事件的解決方案

    ASP.Net中防止刷新自動觸發(fā)事件的解決方案

    ASP.Net中防止刷新自動觸發(fā)事件的解決方案...
    2007-03-03
  • ASP.net中Core自定義View查找位置的實例代碼

    ASP.net中Core自定義View查找位置的實例代碼

    在本篇文章里小編給大家分享的是關(guān)于ASP.net中Core自定義View查找位置的實例代碼,需要的朋友們可以學(xué)習(xí)下。
    2020-04-04
  • .net中 關(guān)于反射的詳細(xì)介紹

    .net中 關(guān)于反射的詳細(xì)介紹

    本篇文章小編將為大家介紹,.net中 關(guān)于反射的詳細(xì)介紹 ,有需要的朋友可以參考一下
    2013-04-04

最新評論

马公市| 长汀县| 礼泉县| 郓城县| 湘西| 伊春市| 定边县| 沅陵县| 都昌县| 津市市| 尉氏县| 南丹县| 清水河县| 乌拉特后旗| 洪雅县| 蚌埠市| 綦江县| 开鲁县| 尖扎县| 金溪县| 仪陇县| 岳普湖县| 京山县| 阿拉善盟| 眉山市| 天全县| 新晃| 吴堡县| 潜江市| 仪陇县| 松江区| 阜南县| 固始县| 广东省| 荆州市| 裕民县| 麦盖提县| 东乌珠穆沁旗| 墨竹工卡县| 上犹县| 拜城县|