richtextbox.Text里面有许多字符串,如下:
aaabbbcccaaabbbcccaaabbbcccaaacccaaaddd
现在要将之筛选出,重复出现越多的排在前面。
上面的字符串:
aaa出现了5次;
ccc出现了4次;
bbb出现了3次;
ddd出现了1次;运行结果:
aaa
ccc
bbb
ddd

解决方案 »

  1.   

    a算不算你说的字符?a出现的次数明显比aaa多哦。你的字符串是怎样一个规则?
      

  2.   

    a算不算你说的字符串?a出现的次数明显比aaa多哦。你的字符串是怎样一个规则?
      

  3.   

    重写例子
    richtextbox.Text里面有许多字符串,如下:
    “aaa”,“bbb”,“ccc”,“aaa”,“bbb”,“ccc”,“aaa”,“bbb”,“ccc”,“aaa”,“ccc”,“aaa”,“ddd”
    现在要将之筛选出,重复出现越多的排在前面。 
    上面的字符串: 
    aaa出现了5次; 
    ccc出现了4次; 
    bbb出现了3次; 
    ddd出现了1次; 运行结果: 
    aaa 
    ccc 
    bbb 
    ddd
      

  4.   

            public string[] SortString(string source)
            {
                Dictionary<String, int> list = new Dictionary<String, int>();
                int iStart = 0;
                for (int i = 0; i < source.Length; i++)
                {
                    if (i + 1 < source.Length && source[i] != source[i + 1])
                    {
                        string key = source.Substring(iStart, i + 1 - iStart);
                        SetValue(list, key);
                        iStart = i + 1;
                    }
                    else if (i + 1 == source.Length)
                    {
                        string key = source.Substring(iStart);
                        SetValue(list, key);
                    }
                }            string[] stArray = new string[list.Count];
                int[] iArray = new int[list.Count];
                list.Keys.CopyTo(stArray, 0);
                list.Values.CopyTo(iArray, 0);
                for (int i = 0; i < iArray.Length; i++)
                {
                    string stNow = stArray[i];
                    for (int j = i + 1; j < iArray.Length; j++)
                    {
                        if (iArray[j] > iArray[i])
                        {
                            stArray[i] = stArray[j];
                            stArray[j] = stNow;
                        }
                    }
                }            return stArray;
            }        public void SetValue(Dictionary<String, int> dic, string key)
            {
                if (!dic.ContainsKey(key))
                {
                    dic.Add(key, 1);
                }
                else
                {
                    dic[key] = dic[key] + 1;
                }
            }
      

  5.   

    又是正则using System.Text.RegularExpressions;private int GetCount(string text,string keyWord)
    {
     Regex reg=new Regex(keyWord);
     return reg.Matchs(text).Length;
    }
      

  6.   


    string text = "aaabbbcccaaabbbcccaaabbbcccaaacccaaaddd";
    string pattern = @"(.)\1*";
    Dictionary<string, int> dic = new Dictionary<string, int>();
    Regex.Replace(text, pattern, delegate(Match m)
    {
        if (dic.ContainsKey(m.Value))
        {
            dic[m.Value]++;
        }
        else
        {
            dic.Add(m.Value, 1);
        }
        return null;
    });
     
    foreach (string key in dic.Keys)
    {
        Console.WriteLine(key + ": " + dic[key]);
    }输出:aaa: 5
    bbb: 3
    ccc: 4
    ddd: 1