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
オブジェクトがリストに存在するかどうかをチェックするだけです。したがって、ここでは大文字と小文字を区別しない検索はできません。なぜなら、 "three"は "three"とは異なるオブジェクトだからです。これを解決する
単純なアプローチが
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));
}
@ mememound - このシナリオではどのようにしてequalsIgnoreCaseを使用しましたか? –
それはあなた自身の方法を書いて頂きます。カスタムため ポインタ:
内のすべての値をパラメータ文字列を比較します。
リストのリスト; 公共ブールは、(文字列str){私はあなたが意味推測
for(int i=0;i<list.size();i++){
if(list.elementAt(i).toLowerCase().Equals(str.toLowerCase())) return true;
}
return false;
}
効率的な答えではありません。 'str'を小文字のN回(' list'の各要素に対して1回)に変換しています。このメソッドを呼び出すたびに 'list'の各項目を小文字に変換しています。あなた自身のメソッドを書くのに苦労するなら、 'equalsIgnoreCase'を使い、すべての割り当てをスキップしてください。 –
が含まれている 'List.contains()' – m0skit0
data' 'へと見上げ前に挿入する前に、小文字にすべてを変換しますか? – NPE
http://stackoverflow.com/questions/8751455/arraylist-contains-case-sensitivity –