我正在使用扫描仪编写一个简单的程序,现在想通过将输入与这些词进行比较来确保用户仅键入"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/