2016-10-11 3 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

が変更 'リットル= str.Substring(I、1)となり;'と、それは、これが細かい –

+0

を動作するはずです:このコードを使用します'System.Linq'名前空間を含める必要があります –

答えて

3

あなたは試すことができます:

​​

希望をあなたは各文字のためのサブストリングを呼び出す

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); 
    } 
} 

のように簡単に行くことができます:-)

+0

注作品 –

+0

本当にありがとう、追加のために:-) – Arcord

2

このヘルプは本当にではありません最高のソリューション。文字列は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.RegularExpressionsMSDNを参照)にあります。あなたのケースでは

Regex.Matches(text, pattern).Count 

、それは

Regex.Matches("hnfdjkkedjjykukyukrtrnrkkkkt", "[k]").Count 
関連する問題