我想计算C#字符串中“ e”字符的数量

时间:2018-12-08 15:45:48

标签: c#

每次运行该程序时,由于此行代码,它总是崩溃:

if (s[i] == 'e')

有人可以帮我吗?

    Console.WriteLine("Enter a string:");
    string s = Console.ReadLine();
    Console.WriteLine(s);
    int anz = 0;

    for (int i = 0; i <= s.Length; i++)
    {
        if (s[i] == 'e')
            anz++;
        else if (s[i] == 'E')
        {
            anz++;
        }
    }

    Console.WriteLine("There are" + anz + "e's in your string! ");
    Console.ReadKey();

3 个答案:

答案 0 :(得分:3)

您可以使用Linq的Count()并省略所有循环和变量声明:

int anz = s.Count(i => i == 'e' || i == 'E');

答案 1 :(得分:0)

更改

for (int i = 0; i <= s.Length; i++)

for (int i = 0; i < s.Length; i++)

for (int i = 0; i <= (s.Length-1); i++)

即如果键入10个字符,它将尝试在最后一个循环中获取s[10]。索引从0开始,以长度-1结尾。您尝试再得到一个字母。

请注意,有简单的方法可以实现这一点。

答案 2 :(得分:0)

您可以尝试这种方式:

string search = "search the E character";
int count = 0;
foreach (var character in search.ToLower())
{
    if (character.Equals('e'))
        count += 1;
}