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

Lin*_*rth 4 java if-statement pipe bluej

我正在使用扫描仪编写一个简单的程序,现在希望通过将输入与这些单词进行比较来确保用户仅键入“是”或“否”。我正在使用if带有||(管道)的普通声明:

if (!input.equals("yes") || !input.equals("no")) {
    //do something
}
Run Code Online (Sandbox Code Playgroud)

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

我尝试了什么

  • 我从Wikipedia网站复制并粘贴了管道,以确保我确实使用了正确的管道字符
  • 重新启动BlueJ
  • 尝试使用等号(&&),相同的错误
  • 如果我删除了第二个条件和它起作用的管道

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

Jea*_*ard 5

角色u00a0是一个不间断的空格。

好像您在代码中键入了控制字符,替换了该行副本中的所有内容

if(!input.equals("yes") && !input.equals("no"))
Run Code Online (Sandbox Code Playgroud)

或者简单地在行中隐藏空格并重新输入(确保您没有输入nbsp)。

请注意,我改变了||&&打字“无”,例如仍然会进入状态为“是”不会等于输入。您的情况将true || false导致true

无论如何,这与||or &&运算符无关,它是空格。