22

どういうわけか、array.contains()メソッドにルックアップの大文字と小文字を区別しないように指示できますか?

List<String> data = Arrays.asList(
  "one", Two", "tHRee"); //lots of entries (100+)

data.contains("three");
4

2 に答える 2

46

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));
    }
于 2013-03-07T11:21:50.483 に答える
-1

contains()独自のメソッドを作成する必要があります。カスタム用のポインタcontains()

  1. リスト内のすべての要素を繰り返し処理します。
  2. パラメータ文字列をのすべての値と比較します
  3. 大文字と小文字を区別しない比較を行うには、必ず両方のパラメーターと現在の要素に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;
    }
    
于 2013-03-07T11:31:11.097 に答える