Array contains() without case sensitive lookup?
本问题已经有最佳答案,请猛点这里访问。
我能以某种方式告诉array.contains()方法不区分大小写吗?
1 2 3 4 | List<String> data = Arrays.asList( "one", Two","tHRee"); //lots of entries (100+) data.contains("three"); |
解决这个问题的简单方法是
1 2 3 4 5 6 7 8 |
然后
1 | containsCaseInsensitive("three", data); |
Java 8版本:
1 2 3 | public boolean containsCaseInsensitive(String s, List<String> l){ return l.stream().anyMatch(x -> x.equalsIgnoreCase(s)); } |
这将要求您编写自己的
自定义
要使比较不区分大小写,请确保对BOTH参数和当前元素应用toLowerCase或toUpperCase中的任何一个。
列表列表;
公共布尔包含(String str){
1 2 3 4 5 | for(int i=0;i<list.size();i++){ if(list.elementAt(i).toLowerCase().Equals(str.toLowerCase())) return true; } return false; } |