我试图要求用户输入一个字符(“y”/“n”),并检查是否是正确的答案。我发现了以下错误: “无法比拟的类型:java.util.Scanner中和java.lang.String中”比较扫描仪到字符串
Scanner userInput = new Scanner(System.in);
System.out.printf("Is this word spelled correctly?: %s", wordToCheck);
rightCheck(userInput);
public boolean rightCheck(Scanner usersAnswer)
{
if(usersAnswer == "y")
{
//"Correct!"
//Increment User's Score
}
else
{
//"Incorrect"
//Decrement User's Score
}
}
你可以通过切换equals'的'参数使程序更不容易出错: '“Y” .equals(回答)' 如果'answer'为'null',则不会抛出'NullPointerException' – cIph3r 2013-02-22 07:15:55
@ cIph3r:'Scanner.next()'永远不会返回null,所以在这里不需要这样做。如果它曾经* did *返回null,那就表明某件事情已经非常糟糕 - 所以我宁愿通过一个异常来了解它,而不是在一个破碎的世界中继续。 – 2013-02-22 07:18:29
好吧,对。我是'scanner.next()'的情况,没有空值。但总的来说,这可以防止这种错误。 – cIph3r 2013-02-22 07:24:46