2015-07-21 57 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) 
相關問題