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

标签 java if-statement pipe bluej

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

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

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

我尝试过的

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

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

最佳答案

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

看起来你在代码中输入了一个控制字符,替换了这一行的副本中的所有内容

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

或者简单地取消您行中的空格并重新键入它们(确保您没有键入 nbsp)。

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

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

关于Java - OR/AND 字符 (|| &&) 在 if 语句中是非法的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29496347/

相关文章:

C Linux编程-管道使子进程退出

java - 如何在 Eclipse 中使用 Ant 源?

python - 减少Python中的 'if in'语句

mysql - 帮助 MySQL Procedure Nested IF ELSE statements

javascript - 如何在 mongoose 函数的 if/else block 中来回跳转?

java:如何通过管道(stdin/stdout)读取和写入进程

java - 两个应用程序使用 Intent 进行通信,传递数据

java - 错误: incompatible types: <anonymous OnTabSelectedListener> cannot be converted to BaseOnTabSelectedListener

java - 字符串比较逻辑未按预期工作

C:同时从管道 char 和 int 读取(棘手的一个)