我可以以某种方式告诉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)
| 归档时间: |
|
| 查看次数: |
36987 次 |
| 最近记录: |