检查一个Java Set是否包含某个字符串,不考虑大小写

4

我正在尝试测试一组字符串是否包含一个特定的字符串,而且不区分大小写。例如,如果我的集合包含"john"或"John"或"JOHN"等字符串,则

mySet.contains("john")

(或类似的内容)应该返回true。


1
类似问题:ArrayList包含大小写敏感性 - user142162
我的意思是:如果你使用.contains(),你不能做到。Set使用哈希。你必须遍历整个集合并比较每个元素。 - Brian Roach
@BrianRoach,确实,只使用contains()不起作用。我正在寻找一些具有类似行为的方法,但是不区分大小写。 - djlovesupr3me
1个回答

13

构建集合时,使用具有不区分大小写比较器的排序集合。例如:

Set<String> s = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
s.addAll(Arrays.asList("one", "two", "three"));

//Returns true
System.out.println("Result: " + s.contains("One"));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接