10

次のように、JAVA で文字列をアルファベット順に並べ替えたいと思います。たとえば、AbaC を入力すると、AabC が返されます。

4

3 に答える 3

13

Arrays.sort最初に文字を配列に入れると、を使用してこれを行うことができます。(カスタムの大文字と小文字を区別しないコンパレータを使用するには、プリミティブではCharacterなくオブジェクトの配列である必要があります。)char

// put the characters into an array
Character[] chars = new Character[str.length()];
for (int i = 0; i < chars.length; i++)
    chars[i] = str.charAt(i);

// sort the array
Arrays.sort(chars, new Comparator<Character>() {
    public int compare(Character c1, Character c2) {
        int cmp = Character.compare(
            Character.toLowerCase(c1.charValue()),
            Character.toLowerCase(c2.charValue())
        );
        if (cmp != 0) return cmp;
        return Character.compare(c1.charValue(), c2.charValue());
    }
});

// rebuild the string
StringBuilder sb = new StringBuilder(chars.length);
for (char c : chars) sb.append(c);
str = sb.toString();
于 2013-10-19T16:16:58.050 に答える
3

String を文字配列に変換し、ソート内の各文字の int 値を比較します。

必要な方法: String.toCharArray();

于 2013-10-19T16:11:10.470 に答える