String.Equals它是如何工作的?

时间:2013-02-06 20:19:20

标签: c# string equals

我有字符串text =“camel”,然后我想检查文本是否包含字母“m”,所以我循环浏览它并使用以下方法检查:

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

但这永远不会让我真实......为什么?

5 个答案:

答案 0 :(得分:3)

由于您要将字符与字符串进行比较,因此无效。 以下是有关String comparisons

的更多信息

在这种情况下,您应该使用

if(text.Contains("m"))

答案 1 :(得分:2)

如@MattGreer所述,您目前正在比较一个字符和一个字符串。这是因为您为文字选择了分隔符,因为text[i]从字符串而不是该字符串的子字符串返回一个字符。

请注意使用string literal分隔符(引用)和character literal分隔符(撇号)之间的区别:

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

另外,正如其他人所说的那样,除非你有某种原因想要遍历每个角色,String.Contains()似乎会达到预期的目的。

答案 2 :(得分: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".

}

我认为你没有比这更快。

祝你好运。

答案 3 :(得分: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");
    }
}

答案 4 :(得分:-2)

Miraclessss

使用Contains

你问的是“骆驼”是否等同于“m” - 它不是。

“camel”包含“m”。