婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP.NET從字符串中查找字符出現次數的具體實現方法

ASP.NET從字符串中查找字符出現次數的具體實現方法

熱門標簽:ai電銷機器人對貸款有幫助嗎 怎樣給陜西地圖標注顏色 400電話辦理信任翰諾科技 福州人工智能電銷機器人加盟 地圖標注多少錢一張 宿遷智能外呼系統排名 廣州銷售外呼系統定制 云狐人工智能電話機器人 電銷機器人 數據

首先想到的方法當然是從頭遍歷字符串并統計:

復制代碼 代碼如下:

c1=0;
for(inti=0;i {
if(str[i]=='A')
{
c1++;
}
}

第二種方法也很容易想到,將字符串中所有要查找的字符去除,然后比較去除前后的字符串長度即可。這種方法遭到了某人的鄙視,據說性能很差而且多占空間。

復制代碼 代碼如下:

c2=str.Length-str.Replace("A",String.Empty).Length;

接下來某人又提出了第三種方法,是用要查找的字符為分隔符,將原字符串分隔為多個子串,然后求子串的數目即可。在C#中這是一個寫起來很短的方法:

復制代碼 代碼如下:

c3=str.Split(newchar[]{'A'}).Length-1;

我們從原理可以推斷出三者性能的順序,但究竟差距是多少呢,還是要動手試驗一下。這是非常經典的測試代碼:

復制代碼 代碼如下:

stringstr="SADTHDGSAFSDGTGHRDGSADFADDRHDFSGASDAA";

Stopwatchsw=newStopwatch();

longt;
intc=0;
GC.Collect();
Application.DoEvents();

sw.Start();

for(inti=0;i100000;i++)
{
c=三種算法
}

sw.Stop();

t=sw.ElapsedMilliseconds;

首先我們確保正確性,經測試三種方法都能正確處理多種情況,包括首尾、連續出現、不出現或串長度為0等,我所取的字符串是一個很普通的串。編譯為Release版,預運行10次后獲得以下結果:

遍歷統計:13毫秒
替換后比較長度:112毫秒
斷開字符串后計數:233毫秒

這里已經體現出差異,遍歷統計比替換后比較要快10倍,斷開字符串又要慢一些。接下來我又做了如下兩個測試:

1、不改變字符串的長度,增加或減少要查找字符串的個數。
2、不改變要查找字符出現的頻率,但增長字符串的長度。

結果發現,三種方法都隨字符串長度增加線性變慢,而后兩種方法還隨要查找的字符增加而變慢。

斷開字符串的方法還受要查找字符串分布情況的影響。

研究Replace函數和Split函數的實現可以徹底解決這個問題。不過我沒有心情細細研究了,我還是決定選用第二種方法——替換后比較長度。雖然其速度比第一種方法慢,但易于改寫為求長度不為1的子串出現次數的方法。第一種方法若改為求長度大于1的字串就要考慮很多因素(盡管不一定真的很麻煩),我懶得想了,呵呵。

您可能感興趣的文章:
  • 利用json獲取字符出現次數的代碼
  • 統計jQuery中各字符串出現次數的工具
  • 找出字符串中出現次數最多的字母和出現次數精簡版
  • JavaScript計算字符串中每個字符出現次數的小例子
  • java字符串比較獲取字符串出現次數的示例
  • php查找字符串出現次數的方法
  • php獲取字符串中各個字符出現次數的方法
  • JavaScript實現計算字符串中出現次數最多的字符和出現的次數
  • python統計字符串中指定字符出現次數的方法
  • 統計輸入字符各個字母出現頻率的解題思路

標簽:綿陽 新疆 延安 黃南 曲靖 大興安嶺 宜春 焦作

巨人網絡通訊聲明:本文標題《ASP.NET從字符串中查找字符出現次數的具體實現方法》,本文關鍵詞  ASP.NET,從,字符串,中,查找,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET從字符串中查找字符出現次數的具體實現方法》相關的同類信息!
  • 本頁收集關于ASP.NET從字符串中查找字符出現次數的具體實現方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 文山县| 新化县| 吉隆县| 始兴县| 冀州市| 望谟县| 商丘市| 双辽市| 宣恩县| 唐海县| 游戏| 贵港市| 凯里市| 张家港市| 灵寿县| 遂昌县| 壤塘县| 彭州市| 荥经县| 城固县| 铜陵市| 宣恩县| 马龙县| 平原县| 房产| 高雄市| 罗田县| 呼伦贝尔市| 四川省| 上林县| 濮阳市| 壶关县| 兴化市| 宁河县| 康定县| 当涂县| 海城市| 布尔津县| 呼图壁县| 同江市| 色达县|