如何在Map中查找关键字时忽略大小写?

可能重复:
有没有一种好的方法来让Map <String,?>获取并忽略大小写?

如何在java.util.Map中搜索键时忽略大小写?

我想知道我们是否可以通过忽视案例来查找地图中的关键字。

Example,
   Map<String, Integer> lookup = new HashMap<String, Integer>();   
   lookup.put("one", 1);   
   lookup.put("two", 2);   
   lookup.put("three", 3); 

用户输入可能是“一个”或“一个”。 在这种情况下,而不是将用户输入转换为小写。 是否有任何方法可以通过任何方法忽略敏感键?

谢谢,凯瑟尔


为什么不使用TreeMap而不是HashMap ,那么你可以指定一个大小写不敏感的比较器( String.CASE_INSENSITIVE_ORDER ):

public static void main(String[] args) throws Exception {

    Map<String, Integer> lookup = 
        new TreeMap<String, Integer>(String.CASE_INSENSITIVE_ORDER);

    lookup.put("One", 1);
    lookup.put("tWo", 2);
    lookup.put("thrEE", 3);

    System.out.println(lookup.get("Two"));
    System.out.println(lookup.get("three"));
}

输出:

2
3

HashMap使用键的equals(Object)方法(结合hashCode() ),并且String.equals()区分大小写。 所以如果你想要一个不区分大小写的键,你必须用适当的equals()hashCode()定义你自己的键类。 总之,在所有关键字符串上使用toLowerCase()可能更容易。

链接地址: http://www.djcxy.com/p/92189.html

上一篇: How to ignore the case sensitive when we look for a key in the Map?

下一篇: Java : Comparable vs Comparator