我試圖要求用戶輸入一個字符(「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