4

重複の可能性:
Androidの配列リストをアルファベット順に並べ替える(大文字と小文字を区別しない)

みなさん、こんにちは。並べ替えに小さな問題があります。

String型のコレクションを1つ取っています。私がソートしているとき、それは私が期待していた間違った結果を私に与えています

これが私のコードです:

List <String> caps = new ArrayList<String>();  
caps.add("Alpha");  
caps.add("Beta");  
caps.add("alpha1");  
caps.add("Delta");  
caps.add("theta");  

Collections.sort(caps);

次のように並べ替えています。

アルファベータデルタアルファ1シータ。

ここでは、大文字/小文字でも任意のタイプの文字列を使用できます。しかし、小文字の単語は後で来ます。

私は次のような出力が欲しいです:

アルファアルファ1ベータデルタシータ

このための簡単な組み込みの方法はありますか?

4

2 に答える 2

13

Collections.sort();注文のためにカスタムコンパレータを渡すことができます。大文字と小文字を区別しない順序付けStringクラスは、と呼ばれる静的な最終コンパレータを提供しますCASE_INSENSITIVE_ORDER

したがって、あなたの場合、必要なのは次のとおりです。

Collections.sort(caps, String.CASE_INSENSITIVE_ORDER);

于 2012-11-09T19:13:52.387 に答える
1

を使用しComparatorます:

Collections.sort(caps, new Comparator<String>{
    public int compare(String s1, String s2){
        return s1.toLowerCase().compareTo(s2.toLowerCase());
    }
});
于 2012-11-09T19:16:33.893 に答える