Java - OR / AND 字符 (|| &&) 在 if 语句中非法

Java - OR / AND characters (|| &&) illegal in if-statement

我正在使用扫描仪编写一个简单的程序,现在想通过将输入与这些词进行比较来确保用户仅键入 "yes" 或 "no"。我正在使用带有 ||(管道)的普通 if-语句:

if (!input.equals("yes") || !input.equals("no")) {
    //do something
}

Java(我正在使用 BlueJ)抱怨我的管道,它说:“非法字符:'\u00a0'

我试过的

有谁知道它为什么会抱怨以及我该如何解决它? – 提前致谢

字符u00a0是一个不间断的space。

您似乎在代码中输入了控制字符,请替换此行的副本中的所有内容

if(!input.equals("yes") && !input.equals("no"))

或者简单地在你的行中隐藏 spaces 并重新输入它们(确保你没有输入 nbsp)。

请注意,我将 || 更改为 &&,因为例如键入 "no" 仍会输入条件,因为 "yes" 不等于输入。您的条件将是 true || false,这将导致 true.

无论如何,这与 ||&& 运算符无关,它是 spaces.

'\u00a0' 解析为非中断 space,所以问题可能不是管道。尝试消除管道周围的 space 并将否定语句括在括号中,然后查看错误是否仍然存在。