3

次のような文字列の配列を文字の部分文字列で並べ替える必要があります。

[0] = "gtrd3455";
[1] = "wsft885";
[2] = "ltzy96545";
[3] = "scry5558";
[4] = "lopa475";

次の「3455、885、96545、5558、475」で並べ替える必要があります。配列の最初の4文字を部分文字列で並べ替え、並べ替えて、次の出力のように配列に表示し直す必要があります。

出力は次のような配列である必要があります。

[0] = "ltzy96545";
[1] = "scry5558";
[2] = "gtrd3455";
[3] = "wsft885";
[4] = "lopa475";

Javaでこれを行う方法の例は?

4

1 に答える 1

9

Comparator、およびArray#sortメソッドを使用して、必要に応じて並べ替えることができます。-

String[] yourArray = new String[3];
yourArray[0] = "gtrd3455";
yourArray[1] = "ltzy96545";
yourArray[2] = "lopa475";

Arrays.sort(yourArray, new Comparator<String>() {
    public int compare(String str1, String str2) {
        String substr1 = str1.substring(4);
        String substr2 = str2.substring(4);

        return Integer.valueOf(substr2).compareTo(Integer.valueOf(substr1));
    }
});

System.out.println(Arrays.toString(yourArray));

出力:-

[ltzy96545, gtrd3455, lopa475]
于 2012-10-24T19:23:10.360 に答える