下面的問題是測驗我花了幾個星期前,有不正確,但沒有提供答案:當從用戶那裏讀取其中一個時,爲什麼不是「Ellie」==「Ellie」?
考慮下面的代碼,不包含編譯錯誤:
String secret = "Ellie"; Scanner kb = new Scanner(System.in); System.out.println("Guess which name I'm thinking of:"); String guess = kb.next(); if (guess == secret) { System.out.println("Wow! You're smart!"); } else { System.out.println("Wrong!"); System.out.println("You guessed: " + guess); System.out.println("The correct answer was: " + secret); }
假設用戶在提示符下輸入「Ellie」。 會產生什麼輸出,以及爲什麼輸出而不是其他輸出?
這裏是我的不正確的答案:
輸出將是else語句 「錯!」因爲字母「E」的大小寫。解決的辦法是 要麼改變字符串祕密「艾莉」,以及用戶的猜測,人們也可以在IGNORECASE關鍵字 字符串祕密寫。
該程序實際上輸出「錯誤」的,我測試它。
除了簡單地知道答案,可能真有人給我講解一下,所以我可以理解這個概念比較好?
你是對你的回答除了錯誤的原因,它實際上有與'猜測== secret'部分做。 – Marcelo
'equalsIgnoreCase'將用於比較「Ellie」和「eLLie」並仍然爲「true」。 「等於」就足以比較「艾莉」和「艾莉」。 – Jeffrey