gpt4 book ai didi

c# - 字符串 "a"不等于 C# 中的 Char "a"?

转载 作者:行者123 更新时间:2023-11-30 13:13:11 24 4
gpt4 key购买 nike

因此,我有一种用于解析表达式的算法。另外,有条件的方法可以走,不管有没有括号。我正在制作表达式并将其放入字符串变量中,例如:

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 为 ")"时没有通过?

最佳答案

Why is that?

字符与字符串不同。字符串是字符的序列expression[i] 的类型是 char,而不是 string - 所以您想将它与 char 进行比较文字:

if (expression[i] == ')')

注意单引号 (')') 而不是您使用的双引号 (")")。单引号用于字 rune 字;双引号用于字符串文字。

关于c# - 字符串 "a"不等于 C# 中的 Char "a"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16884040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com