字符串“a"不等于Char "a"在c#
本文关键字:quot Char 不等于 字符串 | 更新日期: 2023-09-27 18:16:41
所以,我有一个算法解析表达式。还有,不管有没有括号,都有条件的方法。我把表达式放到字符串变量中,比如:
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没有通过呢?
为什么?
字符与字符串不同。字符串是一个字符序列。expression[i]
的类型是char
,而不是string
—因此您希望将其与char
字面值进行比较:
if (expression[i] == ')')
注意单引号(')'
)而不是你使用的双引号(")"
)。单引号用于字符字面量;双引号用于字符串字面值