所以,我有一种解析表达式的算法。此外,无论是否有括号,都有条件方法。我正在制作表达式并将其放入字符串变量中,例如:
string expression = "6*(3+2)";
然后我让它通过解析功能。在它给了我奇怪的结果之后,我去调试解析函数并注意到奇怪的事情发生了:当我从右到左迭代字符串的字符时
for (int i = (expression.Length -1); i>=0; i--) ...
它没有通过条件
if (expression[i].Equals(")")) ...
当表达式 [i] 显示在 ")" 上时,因为我在 Visual Studio 的 "Locals" 部分看到了它。这是为什么?我需要做的是:
if (expression[i].ToString() == ")") ...
然后我会得到正确的结果。它没有让我做 expression[i] == ")" 因为它说我不能在 char 和 string 上应用 "==" 运算符。
那么,为什么.Equals 在它是“)”时没有通过?