文字列を数値でソートする方法は、言語によって異なります。たとえば、英語では、昇順ソートでは数字が文字の前に来ます。しかし、ドイツ語では、数字は文字の後に昇順でソートされます。
Collator
次のように a を使用して文字列を並べ替えようとしました。
private Collator collator = Collator.getInstance(Locale.GERMANY);
collator.compare(str1, str2)
ただし、上記の比較では、文字ルールの後の数字は考慮されていません。
私が次のように使用している当分の間、Javaがこのルール(文字の後の数字)を考慮していない理由を誰かが知っていますかRuleBasedCollator
:
private final String sortOrder = "< a, A < b, B < c, C < d, D < e, E < f, F < g, G < h, H < i, I < j, J < k, K < l, L < m, M < n, N < o, O < p, P < q, Q < r, R < s, S < t, T < u, U < v, V < w, W < x, X < y, Y < z, Z < 0 < 1 < 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9";
private Collator collator = new RuleBasedCollator(sortOrder);