richtextbox.Text里面有许多字符串,如下:
aaabbbcccaaabbbcccaaabbbcccaaacccaaaddd
现在要将之筛选出,重复出现越多的排在前面。
上面的字符串:
aaa出现了5次;
ccc出现了4次;
bbb出现了3次;
ddd出现了1次;运行结果:
aaa
ccc
bbb
ddd
aaabbbcccaaabbbcccaaabbbcccaaacccaaaddd
现在要将之筛选出,重复出现越多的排在前面。
上面的字符串:
aaa出现了5次;
ccc出现了4次;
bbb出现了3次;
ddd出现了1次;运行结果:
aaa
ccc
bbb
ddd
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
{
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;
}
}
{
Regex reg=new Regex(keyWord);
return reg.Matchs(text).Length;
}
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