我对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
?
为什么会这样?
答案 0 :(得分:2)
正如@Kon在评论中所说,你不应该将字符串与==操作进行比较,而应该使用String.equals()方法。如果您想要忽略值之间的区分大小写,您甚至可以使用String.equalsIgnoreCase()方法。
System.out.println(res + " == ly -> " + (res.equals("ly")));
或如上所述
System.out.println(res + " == ly -> " + (res.equalsIgnoreCase("ly")));
希望这有帮助!