[Java]文字列配列を50音順に昇順・降順ソートする方法

java

今回は、Java8のStreamを使って文字列配列を50音に並べる方法です。
ひらがなでのソート方法だけではなく、漢字・カタカナ・1byte文字・記号が混在しているケースのソートも紹介していきます。

[スポンサーリンク]

目次

ひらがなを昇順ソート
ひらがなを降順ソート
ひらがな・漢字・その他混在を昇順ソート
ひらがな・漢字・その他混在を降順ソート

ひらがなを昇順ソート

comparingにtoStringを指定してソートしていきます。

import static java.util.Comparator.comparing;
public static void main( String[] args ) {

    String[] arrays = {"う", "え", "あ", "お", "い"};

    // 昇順
    Stream.of(arrays).sorted(comparing(String::toString))
        .forEach(s -> System.out.println(s));
}
>実行結果




ひらがなを降順ソート

降順は、reversedを使っていきます。

import static java.util.Comparator.comparing;
public static void main( String[] args ) {

    String[] arrays = {"う", "え", "あ", "お", "い"};

    // 降順
    Stream.of(arrays).sorted(comparing(String::toString).reversed())
        .forEach(s -> System.out.println(s));
}
>実行結果




ひらがな・漢字・その他混在を昇順ソート

結果として、数字、1byte文字、機種依存文字、ひらがな、カタカナ、漢字の順でソートされます。

import static java.util.Comparator.comparing;
public static void main( String[] args ) {

    String[] arrays = {"亜", "a", "ア", "あ", "1", "①"};

    // 昇順
    Stream.of(arrays).sorted(comparing(String::toString))
        .forEach(s -> System.out.println(s));
}
>実行結果
1
a



ひらがな・漢字・その他混在を降順ソート

結果として、数字、1byte文字、機種依存文字、ひらがな、カタカナ、漢字の順でソートされます。

import static java.util.Comparator.comparing;
public static void main( String[] args ) {

    String[] arrays = {"亜", "a", "ア", "あ", "1", "①"};

    // 降順
    Stream.of(arrays).sorted(comparing(String::toString).reversed())
        .forEach(s -> System.out.println(s));
}
>実行結果




a
1

ひらがな・漢字・その他混在を降順ソート

結果として、漢字、カタカナ、ひらがな、機種依存文字、1byte文字、数字の順でソートされます。

import static java.util.Comparator.comparing;
public static void main( String[] args ) {

    String[] arrays = {"亜", "a", "ア", "あ", "1", "①"};

    // 降順
    Stream.of(arrays).sorted(comparing(String::toString).reversed())
        .forEach(s -> System.out.println(s));
}
>実行結果




a
1

さいごに

ひらがなの50音順ソートって意外と簡単ですよね。多用する場面は少ないかもしれませんが覚えておいて損はないはずです!

それでは!