condition == string和constant之间

时间:2012-06-09 16:50:10

标签: java android

  

可能重复:
  How do I compare strings in Java?

有人可以告诉我为什么会出现这种情况

if (lista.getString(0)=="username")

不归还真?我以前试过

if (lista.getString(0)==lista.getString(0))

并且不工作,我明白这是一个语言问题。

4 个答案:

答案 0 :(得分:2)

==测试参考相等性。

.equals测试价值平等。

你应该使用:

if (lista.getString(0).equals("username"))

请参阅How do I compare strings in Java?

答案 1 :(得分:1)

对于String比较,请始终使用equals()

if (lista.getString(0).equals("username"))

使用==,您最终会比较引用,而不是值。

一个简单的片段,以进一步澄清:

String s1 = "Hello";
String s2 = new String(s1);
System.out.println(s1.equals(s2)); // true because values are same
System.out.println((s1 == s2)); // false because they are different objects

答案 2 :(得分:0)

来自Java技术

Since Strings are objects, the equals(Object) method will return true if two Strings have
the same objects. The == operator will only be true if two String references point to the  
same underlying String object. Hence two Strings representing the same content will be  
equal when tested by the equals(Object) method, but will only be equal when tested with 
the == operator if they are actually the same object.

使用

if (lista.getString(0).equals("username"))

答案 3 :(得分:0)

比较对象的正确方法是,

object1.equals(object2)

String是Java中的一个对象,因此对于String也是如此

s1.equals(s2)

例如:

if (lista.getString(0).equals("username"))