簡體   English   中英

我想計算C#字符串中“ e”字符的數量

[英]I want to count the number of “e” characters in a string in 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();

您可以使用Linq的Count()並省略所有循環和變量聲明:

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

更改

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結束。您嘗試再得到一個字母。

請注意,有簡單的方法可以做到這一點。

您可以這樣嘗試:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM