2015-03-03 63 views
0

c#的新手。我希望我的程序能够计算特定字母在字符串中出现的数量。计算字符串中的特定字母

public static int countLetters(string word, string countableLetter) 
{ 
    int count = 0; 
    foreach (char c in word) 
    { 
     count++; 
    } 
    return count; 
} 
+1

但你不检查你的'C'等于在你的foreach语句中使用'countableLetter'。 'countableLetter'会更好地作为方法参数中的'char'类型。 – 2015-03-03 07:18:30

+0

'int count = word.Count(ch => ch == letter)'given'letter' is'Char' – 2015-03-03 07:19:21

回答

0

如果你寻找确切的字符,然后第二paramater类型更改为char

public static int countLetters(string word, char countableLetter) 
{ 
    int count = 0; 
    foreach (char c in word) 
    { 
     if(countableLetter == c) 
      count++; 
    } 
    return count; 
} 

但是你可以用Count()方法,其中包括在System.Linq命名空间中做到这一点:

return word.Count(x => x == countableLetter); 

附加:

如果你想找到其中包含任何字符串任何字符,那么你可以使用:

public static int countLetters(string word, string countableLetters) 
{ 
    int count = 0; 
    foreach (char c in word) 
    { 
     if(countableLetters.Contains(c)) 
      count++; 
    } 
    return count; 
} 

或LINQ:

return word.Count(x => countableLetters.Contains(x)); 
0

您可以使用Enumerable.Count为:

var count = word.Count(ch => ch == countableLetter); 

注意你应该改变countableLetterchar而不是string