3

ArrayList の contains() メソッドで大文字と小文字を区別しないようにします。

何か方法はありますか?

ありがとう

4

3 に答える 3

8

いいえ。クラスのメソッドをArrayList使用して値を反復し、比較する独自の contains メソッドを定義する必要があります。equalsIgnoreCaseString

編集:失礼なことはしたくありませんが、質問は非常に明確です。男はそのcontains方法を使いたがっています。toLowerCaseしたがって、あまりにも多くの理由により、要素を追加する前に使用することはできません/使用する必要がありStringます。また、containsメソッドについて話しているので、要素のインデックスではなく要素に焦点を当てています (誰かが数分前に答えたように)。

于 2010-06-08T04:22:56.597 に答える
2

@Cristian が言ったように、これを達成するためのネイティブな方法はありません。便利なコピーアンドペーストの場合に備えて、私が書いた小さなユーティリティメソッドを投稿すると思いました:

public static boolean ContainsCaseInsensitive(ArrayList<String> searchList, String searchTerm)
{
    for (String item : searchList)
    {
        if (item.equalsIgnoreCase(searchTerm)) 
            return true;
    }
    return false;
}
于 2012-07-21T13:32:34.973 に答える
1

私はこのような問題を抱えていました.BinarySearchでこの回避策を使用しましたが、うまくいくようです:

ArrayList al= new ArrayList();
al.Add("Elem1");
al.Add("Elem5");
al.Add("Elem3");
al.Sort();  

if (al.BinarySearch("elem3", new CaseInsensitiveComparer()) > 0)
      MessageBox.Show("Exists");   //this case
else
      MessageBox.Show("Not found");  
于 2011-02-10T09:28:39.910 に答える