我有以下Java代码:
String p = "seven";
String q = "teen";
p + q == "seventeen";
为什么最后一行返回false
而不是true
?
答案 0 :(得分:10)
因为您应该使用equals
方法进行String
比较。 ==
运算符比较对象引用,并且每个对象都是唯一的。在将对象与自身进行比较时,您只需true
进行==
比较。
尝试(p + q).equals("seventeen");
请注意,java中的String
比较区分大小写,因此您可能还需要查看equalsIgnoreCase
方法。
答案 1 :(得分:4)
(p + q).intern()==“seventeen”
实习生将从池中返回字符串
答案 2 :(得分:0)
比较Strings
时,您必须使用String
方法equals
或equalsIgnoreCase
,否则您需要比较对象。由于p
+ q
与"seventeen"
不同,因此您的结果将为false。
答案 3 :(得分:0)
因为==是引用相等而不是逻辑相等。字符串是不可变的,所以你得到新的字符串,它们在内存中的位置不同。尝试:
String p = "seven";
String q = "teen";
(p + q).equals("seventeen");