代码之家  ›  专栏  ›  技术社区  ›  hidemyname

为什么在使用简单的json库后不能比较字符串?

  •  1
  • hidemyname  · 技术社区  · 10 年前

    代码:

    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 正是字符串“NoticeType”,但哈希值介于 object notableType 完全不同。一个是-1929035367,一个是0。

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

    1 回复  |  直到 10 年前
        1
  •  2
  •   jmcg    10 年前

    他们肯定不平等。你一定错过了字符串后面的空格。这些东西很容易错过。

    trim 明弦应该处理好这一点。

    notableType.trim().equalsIgnoreCase(object)