日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

C#統(tǒng)計(jì)字符串中某字符串出現(xiàn)次數(shù)示例

 NaturalWill 2014-04-25
在C#中要統(tǒng)計(jì)一個(gè)字符出現(xiàn)在字符串中的次數(shù)我們有N種實(shí)現(xiàn)方法,下面我總結(jié)了幾種統(tǒng)計(jì)字符串出現(xiàn)資次數(shù)實(shí)例與大家分享。

例1

 代碼如下 復(fù)制代碼

計(jì)算一個(gè)字符串中的某個(gè)子串出現(xiàn)的次數(shù),有沒有好的方法?
/// <summary>
/// 計(jì)算字符串中子串出現(xiàn)的次數(shù)
/// </summary>
/// <param name=”str”>字符串</param>
/// <param name=”substring”>子串</param>
/// <returns>出現(xiàn)的次數(shù)</returns>
static int SubstringCount(string str, string substring)
{
if (str.Contains(substring))
{
string strReplaced = str.Replace(substring, “”);
return (str.Length – strReplaced.Length) / substring.Length;
}

return 0;
}
int count = SubstringCount(“ddddfdfhgfjghjhgjghjhjhjhjhj”, “gh”);


例2 哈希表

 

 代碼如下 復(fù)制代碼

Hashtable ht = new Hashtable();
                string sr = "aaabbcddddd";
                char[] cr = sr.ToCharArray();
                foreach (char ch in cr)
                {
                    if (ht.ContainsKey(ch))
                    {
                        int i = (int)ht[ch];
                        ht.Remove(ch);
                        ht.Add(ch, ++i);
                    }
                    else
                        ht.Add(ch, 1);
                }
                foreach (DictionaryEntry dicEntry in ht)
                {
                    Console.WriteLine("{0}出現(xiàn){1}次", dicEntry.Key, dicEntry.Value);
                }
                ArrayList alist = new ArrayList(ht.Values);
                alist.Sort();
                object o = (object)alist[alist.Count - 1];
                foreach (DictionaryEntry dicEntry in ht)
                {
                    if (dicEntry.Value == o)
                    {
                        string str = dicEntry.Key.ToString();
                        Console.WriteLine("出現(xiàn)次數(shù)最多的字符:{0},共{1}次", str, o.ToString());
                        break;
                    }
                }
                Console.ReadLine();

例3 linq

 代碼如下 復(fù)制代碼

string s = "aaabccccef";
            char[] c = s.ToCharArray();
            var cc = c.GroupBy(e => e).OrderByDescending(e => e.Count()).ToList();
            for (int i = 0; i < cc.Count; i++)
            {
                Console.WriteLine("{0}t{1}", cc[i].Key.ToString(), cc[i].Count().ToString());
            }
            var ccc = c.GroupBy(e => e).OrderByDescending(e => e.Count()).First().ToList();
   
            Console.WriteLine("{0}出現(xiàn){1}次!", ccc[0].ToString(), ccc.Count().ToString());
            Console.ReadKey();

在C#中要統(tǒng)計(jì)一個(gè)字符出現(xiàn)在字符串中的次數(shù)我們有N種實(shí)現(xiàn)方法,下面我總結(jié)了幾種統(tǒng)計(jì)字符串出現(xiàn)資次數(shù)實(shí)例與大家分享。

例1

 代碼如下 復(fù)制代碼

計(jì)算一個(gè)字符串中的某個(gè)子串出現(xiàn)的次數(shù),有沒有好的方法?
/// <summary>
/// 計(jì)算字符串中子串出現(xiàn)的次數(shù)
/// </summary>
/// <param name=”str”>字符串</param>
/// <param name=”substring”>子串</param>
/// <returns>出現(xiàn)的次數(shù)</returns>
static int SubstringCount(string str, string substring)
{
if (str.Contains(substring))
{
string strReplaced = str.Replace(substring, “”);
return (str.Length – strReplaced.Length) / substring.Length;
}

return 0;
}
int count = SubstringCount(“ddddfdfhgfjghjhgjghjhjhjhjhj”, “gh”);


例2 哈希表

 

 代碼如下 復(fù)制代碼

Hashtable ht = new Hashtable();
                string sr = "aaabbcddddd";
                char[] cr = sr.ToCharArray();
                foreach (char ch in cr)
                {
                    if (ht.ContainsKey(ch))
                    {
                        int i = (int)ht[ch];
                        ht.Remove(ch);
                        ht.Add(ch, ++i);
                    }
                    else
                        ht.Add(ch, 1);
                }
                foreach (DictionaryEntry dicEntry in ht)
                {
                    Console.WriteLine("{0}出現(xiàn){1}次", dicEntry.Key, dicEntry.Value);
                }
                ArrayList alist = new ArrayList(ht.Values);
                alist.Sort();
                object o = (object)alist[alist.Count - 1];
                foreach (DictionaryEntry dicEntry in ht)
                {
                    if (dicEntry.Value == o)
                    {
                        string str = dicEntry.Key.ToString();
                        Console.WriteLine("出現(xiàn)次數(shù)最多的字符:{0},共{1}次", str, o.ToString());
                        break;
                    }
                }
                Console.ReadLine();

例3 linq

 代碼如下 復(fù)制代碼

string s = "aaabccccef";
            char[] c = s.ToCharArray();
            var cc = c.GroupBy(e => e).OrderByDescending(e => e.Count()).ToList();
            for (int i = 0; i < cc.Count; i++)
            {
                Console.WriteLine("{0}t{1}", cc[i].Key.ToString(), cc[i].Count().ToString());
            }
            var ccc = c.GroupBy(e => e).OrderByDescending(e => e.Count()).First().ToList();
   
            Console.WriteLine("{0}出現(xiàn){1}次!", ccc[0].ToString(), ccc.Count().ToString());
            Console.ReadKey();

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多