字符串等于给出奇数结果

时间:2013-11-04 01:56:52

标签: java string if-statement equality

我对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? 为什么会这样?

1 个答案:

答案 0 :(得分:2)

正如@Kon在评论中所说,你不应该将字符串与==操作进行比较,而应该使用String.equals()方法。如果您想要忽略值之间的区分大小写,您甚至可以使用String.equalsIgnoreCase()方法。

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

或如上所述

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

希望这有帮助!