字母中出现的字母

时间:2012-12-16 04:00:18

标签: c# c#-4.0

如何计算字符串中的字符出现次数?

例如,假设我有以下输入字符串:

test text
输出应该是:

t  4
e  2
s  1
x  1

4 个答案:

答案 0 :(得分:6)

如果没有编译和测试,下面的linq之类的东西应该可以解决问题:

from c in str
group by c into g
select new { letter= g.Key, count= g.Count()}

答案 1 :(得分:4)

var str = "abc cccdd";

var group = from c in str
            group c by c into g
            select g;

foreach(var g in group)
{
    Console.WriteLine(string.Format("{0}\t{1}", g.Key, g.Count()));
}

答案 2 :(得分:3)

执行此操作的另一种方法,与Luke McGregor的答案相同,只是不同的语法

string mystring = "test text";
var result = mystring.GroupBy(ch => ch).Select(a => new {chr = a.Key, count = a.Count()});

答案 3 :(得分:1)

递归解决方案

请注意,它也会计算空格。您可以删除之前的空格。

public static void GroupString(string str) 
    {
        if (str.Length == 1)
            Console.WriteLine(str[0] + " 1");
        else
        {
            Console.WriteLine(str[0] +  " "+ str.Count(c => c == str[0]));
            GroupString(str.Replace(str[0].ToString(),""));
        }
    }