数组包含()没有区分大小写的查找?

mem*_*und 17 java arrays

我可以以某种方式告诉array.contains()方法不使查找区分大小写吗?

List<String> data = Arrays.asList(
  "one", Two", "tHRee"); //lots of entries (100+)

data.contains("three");
Run Code Online (Sandbox Code Playgroud)

Ave*_*oes 35

contains只需检查列表中是否存在对象.所以你不能在这里做一个不区分大小写的查找,因为"三"是一个与"三"不同的对象.

解决这个问题的简单方法是

public boolean containsCaseInsensitive(String s, List<String> l){
     for (String string : l){
        if (string.equalsIgnoreCase(s)){
            return true;
         }
     }
    return false;
  }
Run Code Online (Sandbox Code Playgroud)

然后

containsCaseInsensitive("three", data);
Run Code Online (Sandbox Code Playgroud)

Java 8+版本:

public boolean containsCaseInsensitive(String s, List<String> l){
        return l.stream().anyMatch(x -> x.equalsIgnoreCase(s));
    }
Run Code Online (Sandbox Code Playgroud)