2014-07-02 39 views
-2
String keys = "3|PNSN--G"; 
    System.out.println(keys); 
    System.out.println(test.get(keys)); 
    if ("c"==test.get(keys)) 
     System.out.println("Sucess"); 
    else 
     System.out.println("Failed"); 



    3|PNSN--G 
    c 
    Failed 

为什么我无法比较它?如果“c”是一个字符串,并且值是一个字符串“c”,为什么它失败?将HashMap的值与字符串进行比较

+0

http://stackoverflow.com/questions/7520432/java-vs-equals-confusion – Pphoenix

+0

'=='检查两个字符串是否存储在yuor计算器内存中的相同位置。 'equals'检查它们是否具有相同的值。 – Pphoenix

回答

1

您应该使用.equals()而不是==运算符来比较字符串内容。 ==运算符将检查两个引用是否指向相同的对象实例,而这显然不是这里的情况。

0

Java中的字符串比较只是参考的比较。您可以使用"c".equals(test.get(keys))