This question already has answers here:
How do I compare strings in Java?
                                
                                    (23个答案)
                                
                        
                6年前关闭。
            
        

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

最佳答案

正如@Kon在评论中指出的那样,您不应该将Strings与==操作进行比较,而应该使用String.equals()方法来完成。如果要忽略值之间的区分大小写,甚至可以使用String.equalsIgnoreCase()方法。

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


或以上

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


希望这可以帮助!

关于java - 字符串等于给出奇怪的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19760560/

10-10 20:02