1

文字列text="camel"があり、テキストに文字 "m"が含まれているかどうかを確認したいので、ループして次のように確認します。

if (text[i].Equals("m"))

しかし、これは私に本当のことを返すことは決してありません...なぜですか?

4

5 に答える 5

3

文字と文字列を比較しているため、これは機能しません。文字列比較に関する詳細情報は次のとおりです。

この場合、使用する必要があります

if(text.Contains("m"))
于 2013-02-06T20:21:13.797 に答える
2

@MattGreer で述べたように、現在、文字と文字列を比較しています。これは、リテラルに選択した区切り文字とtext[i]、文字列の部分文字列ではなく文字列から文字を返すためです。

文字列リテラル区切り記号 (引用符) と文字リテラル区切り記号 (アポストロフィ)の使用の違いに注意してください。

if (text[i].Equals('m'))

また、他の人が述べているように、各文字を反復したい何らかの理由がない限りString.Contains()、意図した目的を果たしているようです。

于 2013-02-06T20:26:52.767 に答える
0

私が理解しているように、テキスト内の文字のすべての出現を見つける必要があります。

string text = "camel";
string lookup = "M";
int index = 0;
while ( (index = text.IndexOf(lookup, index, StringComparison.OrdinalIgnoreCase) != -1)
{
   // You have found what you looked for at position "index".

}

これより早く手に入るとは思えません。

あなたの探求を頑張ってください。

于 2013-02-06T20:38:53.300 に答える
0

答えは Kyle C によって与えられたので、これがプロセス全体を完了する方法ですwinforms。例として使用します。

private void button1_Click(object sender, EventArgs e)
{
    string text = "camel";

    if (text.Contains("m") || text.Contains("M"))//also checks for capital M
    {
        MessageBox.Show("True");
    }
}
于 2013-02-07T02:21:03.560 に答える
-2

ミラクルレス

使用するContains

「camel」が「m」と同等かどうかを尋ねていますが、そうではありません。

「ラクダ」には「m」が含まれています。

于 2013-02-06T20:22:32.290 に答える