This question already has answers here:
How do I compare strings in Java?
(23个答案)
6年前关闭。
我是Java的新手,我一生都无法弄清楚为什么这段代码不起作用,我试图查看一个单词是否为副词,因此它是否以“ ly”结尾(他们总是小写)。
这是我的代码:
我在这里进行测试:http://ideone.com/4FuBwj
输出为:
这意味着
为什么会这样呢?
或以上
希望这可以帮助!
(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