我试图要求用户输入一个字符(“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
}
}
最佳答案
是的,因为扫描仪是获取输入的一种方式而不是值本身。您想要从输入中获取下一个值,然后进行比较。像这样的事情:
String answer = scanner.next();
if (answer.equals("y")) {
...
} else if (answer.equals("n")) {
...
}
请注意,您通常(包括这种情况)不将字符串与 ==
进行比较,因为这会比较两个操作数是否引用完全相同的字符串对象 - 您只对它们是否引用相等对象感兴趣。 (有关更多详细信息,请参阅this question。)
关于java - 将扫描器与字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15018745/