【问题标题】:Check if a Java Set contains a particular string, independent of case检查 Java Set 是否包含特定的字符串,与大小写无关
【发布时间】:2014-03-03 21:38:42
【问题描述】:

我正在尝试测试一组字符串是否包含特定字符串,与大小写无关。例如,如果 mySet 包含 "john" xor "John" xor "JOHN" xor...,那么

mySet.contains("john")

(或类似的东西)应该返回 true。

【问题讨论】:

  • 我的意思是,答案是:如果您使用的是.contains(),则不能。集合使用散列。您必须遍历集合并比较每个条目。
  • @BrianRoach,对,仅仅使用contains() 是行不通的。我正在寻找与该方法具有相似行为但不区分大小写的东西。

标签: java


【解决方案1】:

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

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"));

【讨论】:

    猜你喜欢
    • 2015-05-06
    • 2016-01-17
    • 2016-03-01
    • 2015-07-18
    • 2011-03-31
    • 2012-02-06
    • 2016-11-11
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多