在字符串中搜索特定字符

问题描述

| 因此,我正在做作业,并且被困在一个地方。我必须编写一个计算器,该计算器需要2个数字以及+,-,*,/或%,然后它将执行适当的数学运算。我得到了数字部分,并进行了错误检查,但字符部分使我困惑。我尝试了IndexOf和IndexOfAny,它说没有包含5个参数的重载方法。我从Contains得到了类似的答复。 这是我所拥有的,请帮忙!非常感谢您提供的任何帮助!
Console.Write(\"\\r\\nPlease enter either +,-,* or / to do the math.\\r\\n\");
ReadModifier:
        inputValue = Console.ReadLine();
        if (inputValue.IndexOfAny(\"+\",\"-\",\"*\",\"/\",\"%\"))
        {
            modifier = Convert.tochar(inputValue);
            goto DoMath;
        }
        else
        {
            Console.Write(\"\\r\\nPlease enter either +,* or / to do the math.\\r\\n\");
            goto ReadModifier;
        }
    

解决方法

        
    int index = inputValue.IndexOfAny(new char[] {\'+\',\'-\',\'*\',\'/\',\'%\'});
    if (index != -1)
    {
        modifier = inputValue[index];
        goto DoMath;
    }
    ,        IndexOfAny使用char [],而不是char参数,因此您可以这样写:
inputValue.IndexOfAny(new char[] {\'a\',\'b\',\'c\'})
    ,        你可以做
if (new []{\"+\",\"-\",\"*\",\"/\",\"%\"}.Any(i => inputValue.IndexOf(i) >= 0))
{
    ....
}
要么
if (inputValue.IndexOfAny(new[] {\'+\',\'%\'}) >= 0)
{
     ....
}