【发布时间】:2013-06-02 15:07:32
【问题描述】:
所以,我有一种用于解析表达式的算法。此外,无论是否有括号,都有条件方法。我正在制作表达式并将其放入字符串变量中,例如:
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 在 ")" 时没有通过?
【问题讨论】:
-
两个不同数据类型的事物即使看起来相同也不能被认为是同一事物。
-
那么为什么 OP 在这里没有出现类型错误?