2011-10-18 18 views
0

我是個白癡:包含字符串的變量失敗==用'相同'字符串測試。爲什麼?

我的代碼是下面的代碼。我跑了代碼,並輸入4作爲我的答案。但是,該程序仍然告訴我答案是不正確的。我做錯了什麼?十分感謝你的幫助。

import java.io.*; 

class class1 { 

    public static void main (String[] args) throws IOException { 
    BufferedReader input = new BufferedReader (new InputStreamReader(System.in)); 
    System.out.println("What is the answer to 2 + 2"); 
    String answer; 

    answer = input.readLine(); 

    if (answer == "4"){ 
     System.out.println("Correct"); 
    } else System.out.println("Incorrect"); 

    } 
    } 
} 
+2

不要忘記acc ept回答:) – jeff

回答

7

您無法使用==比較字符串。你需要做的是這樣的:

answer.equals("4"); 

的原因是因爲,如果雙方都是完全相同的對象(同一實例)==纔有效。你真正需要的是檢查兩個字符串是否具有相同的內容。

更具體地說,在您的示例中,==進行比較,看看answer是否指向與"4"相同的對象,但它不會。

更多的技術細節:http://leepoint.net/notes-java/data/expressions/22compareobjects.html

+0

非常感謝! – Mot39

0

您需要更換

if (answer == "4") 

if (answer.equals("4")) 
1

或者,如果你想要做的數值比較

if(Integer.valueOf(answer) == 4) 
相關問題