数组包含() 不区分大小写的查找?
我能以某种方式告诉array.contains()方法不使查找区分大小写吗?
List<String> data = Arrays.asList(
"one", Two", "tHRee"); //lots of entries (100+)
data.contains("three");
我能以某种方式告诉array.contains()方法不使查找区分大小写吗?
List<String> data = Arrays.asList(
"one", Two", "tHRee"); //lots of entries (100+)
data.contains("three");
contains
只需检查列表中是否存在对象即可。因此,您不能在此处进行不区分大小写的查找,因为“三”与“三”是不同的对象。
解决这个问题的一个简单方法是
public boolean containsCaseInsensitive(String s, List<String> l){
for (String string : l){
if (string.equalsIgnoreCase(s)){
return true;
}
}
return false;
}
然后
containsCaseInsensitive("three", data);
Java 8+ 版本:
public boolean containsCaseInsensitive(String s, List<String> l){
return l.stream().anyMatch(x -> x.equalsIgnoreCase(s));
}
它将要求您编写自己的方法。自定义指针:contains()
contains()
若要使比较不区分大小写,请确保在 BOTH 参数和当前元素上应用 toLowerCase 或 toUpperCase 中的任何一个。
列表列表;公共布尔包含(字符串 str){
for(int i=0;i<list.size();i++){
if(list.elementAt(i).toLowerCase().Equals(str.toLowerCase())) return true;
}
return false;
}