2016-10-11 60 views
0

我想檢查k出現的次數。這是 到目前爲止我所做的並沒有得到結果。我怎樣才能得到字母K的總髮生?

class Program 
{ 
    static void Main(string[] args) 
    { 
     int count = 0; 
     string str = "hnfdjkkedjjykukyukrtrnrkkkkt"; 
     string l; 

     for (int i = 0; i < str.Length; i++) 
     { 
      l = str.Substring(1, 1); 
      if (l == "k") 
      { 
       count++; 
      } 
     } 
     Console.WriteLine("k appears " + count++ + " times"); 
     Console.ReadKey(); 
    } 
} 
+2

變化'L = str.Substring(I,1);',它應該工作 –

+0

這工作得很好 –

回答

3

你可以試試:

​​

希望這有助於:-)

+0

注意:要使用此代碼必須包括'System.Linq'命名空間 –

+0

確實感謝您的添加:-) – Arcord

2

你可以去那麼簡單,

using System; 
using System.Linq; 

public class Program 
{ 
    public static void Main() 
    { 
     string s = "aasfkkfasfas"; 
     int count = s.Count(l => l== 'k'); 

     Console.WriteLine(count); 
    } 
} 

調用子字符串的每個字母真的不最佳方案。請記住,該字符串實現IEnumerable,因此您也可以這樣做:

using System; 

public class Program 
{ 
    public static void Main() 
    { 
     string s = "aasfkkfasfas"; 
     int count = 0; 
     foreach(char c in s) 
     { 
      if(c == 'k') 
       count++; 
     } 

     Console.WriteLine(count); 
    } 
} 

這更接近您的原始解決方案。

0

您也可以使用RegEx(正則表達式),但這對您的用例來說有點矯枉過正。

它在名稱空間System.Text.RegularExpressions(請參閱MSDN)中找到。

Regex.Matches(text, pattern).Count 

在你的情況,這將是

Regex.Matches("hnfdjkkedjjykukyukrtrnrkkkkt", "[k]").Count