2015-07-21 52 views
1

代码:为什么我使用简单的json库后无法比较字符串?

HashMap<String, String> map = new HashMap<>();       
for(Object type:entityObj.keySet()){ 
    String notableType=String.valueOf(type); 
    System.out.println(notableType); 
    String object="NotableType"; 
    if(notableType.equals(object)){ 
     map.put(entity.toString(), entityObj.get(type).toString()); 
     System.out.println(map); 
    } 
} 

这很奇怪。我测试了String notableType正是字符串“NotableType”,但objectnotableType之间的哈希值完全不同。一个是-1929035367,一个是0.

为什么?如何解决这个问题呢?

+0

是否notableType等于“NotableType”?不区分大小写,也不存在报价 –

+0

是的他们是平等的。我测试了很多次。我只是使用复制和粘贴,但它仍然无法正常工作。 – deathlee

+0

你可以尝试使用equalsIgnoreCase而不是等于? – jmcg

回答

2

他们肯定不是平等的。您必须错过字符串后的空格。这些东西很容易错过。

trim ming the String should take care of this。

notableType.trim().equalsIgnoreCase(object) 
相关问题