どういうわけか、array.contains()メソッドにルックアップの大文字と小文字を区別しないように指示できますか?
List<String> data = Arrays.asList(
"one", Two", "tHRee"); //lots of entries (100+)
data.contains("three");
contains
オブジェクトがリストに存在するかどうかを確認するだけです。したがって、「3」は「3」とは異なるオブジェクトであるため、ここでは大文字と小文字を区別しないルックアップを実行できません。
これを解決するための簡単なアプローチは次のようになります
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()
:
大文字と小文字を区別しない比較を行うには、必ず両方のパラメーターと現在の要素にtoLowerCaseまたはtoUpperCaseのいずれかを適用してください。
リストリスト; public boolean contains(String str){
for(int i=0;i<list.size();i++){
if(list.elementAt(i).toLowerCase().Equals(str.toLowerCase())) return true;
}
return false;
}