6

私はこれを持っています:

string strings = "a b c d d e";

に似たものが必要ですが、文字列が存在するかどうか(文字の上にある場合)だけでなく、文字列が1回だけ存在string.Contains()するかどうかも知る必要があります。

どうすればこれを達成できますか?

4

6 に答える 6

16

LastIndexOf(String)およびを使用IndexOf(String)して、返される値が等しいことを確認できます。もちろん、文字列が見つかったかどうかも確認します (つまり、返された値が -1 ではありません)。

于 2013-02-08T15:04:51.097 に答える
6

LINQを使用できます

int count = strings.Count(f => f == 'd');
于 2013-02-08T15:04:21.993 に答える
1

代替案

if(Regex.Matches(input,Regex.Escape(pattern)).Count==1)
于 2013-02-08T15:10:18.957 に答える
0
    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");
于 2013-02-08T16:22:59.703 に答える
0

以下のようにしてみてください...それはあなたを助けます...

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());
于 2013-02-08T15:21:16.387 に答える