2013-11-04 25 views
0

我對Java相當陌生,而且我無法弄清楚爲什麼這段代碼不工作,我試圖查看一個單詞是否是副詞,因此如果它以「ly」結尾或不結尾(它們總是小寫)。 這是我的代碼:字符串等於給出奇數結果

String str = "evenly"; 
    int a = str.length()-2; 
    int b = str.length(); 
    String res = (String)str.substring(str.length()-2,str.length()); 
    System.out.println(res + " == ly -> " + (res == "ly")); 

我在這裏測試它:http://ideone.com/4FuBwj 輸出爲:ly == ly -> false
這意味着,res = "ly"res == "ly"false
這是怎麼發生的?

+5

不要將字符串與==比較。使用'res.equals()'方法。 '(res.equals(「ly」))' – Kon

+0

啊,工作,謝謝。 – King

+0

提示:添加@Kon('@'很重要),或者任何人,以*通知他們新的評論。 –

回答

2

由於@Kon在評論中聲明,您不應該將字符串與==操作進行比較,它應該使用String.equals()方法完成。如果你想忽略值之間的區分大小寫,你甚至可以使用String.equalsIgnoreCase()方法。

System.out.println(res + " == ly -> " + (res.equals("ly"))); 

或如上

System.out.println(res + " == ly -> " + (res.equalsIgnoreCase("ly"))); 

希望這有助於!