私はこれを持っています:
string strings = "a b c d d e";
に似たものが必要ですが、文字列が存在するかどうか(文字の上にある場合)だけでなく、文字列が1回だけ存在string.Contains()
するかどうかも知る必要があります。
どうすればこれを達成できますか?
LastIndexOf(String)
およびを使用IndexOf(String)
して、返される値が等しいことを確認できます。もちろん、文字列が見つかったかどうかも確認します (つまり、返された値が -1 ではありません)。
LINQを使用できます
int count = strings.Count(f => f == 'd');
代替案
if(Regex.Matches(input,Regex.Escape(pattern)).Count==1)
string source = "a b c d d e";
string search = "d";
int i = source.IndexOf(search, 0);
int j = source.IndexOf(search, i + search.Length);
if (i == -1)
Console.WriteLine("No match");
else if (j == -1)
Console.WriteLine("One match");
else
Console.WriteLine("More match");
以下のようにしてみてください...それはあなたを助けます...
string strings = "a b c d d e";
string text ="a";
int count = 0;
int i = 0;
while ((i = strings.IndexOf(text, i)) != -1)
{
i += text.Length;
count++;
}
if(count == 0)
Console.WriteLine("String not Present");
if(count == 1)
Console.WriteLine("String Occured Only one time");
if(Count>1)
Console.WriteLine("String Occurance : " + count.Tostring());