Из-за каждого языка свой алфавитный порядок вы не можете. Например,
В указанном вами русском языке с
буква имеет другой порядок, чем в турецком языке.
Вы всегда должны использовать коллатор. Что я могу вам предложить, так это нам API коллекции.
//
// Define a collator for German language
//
Collator collator = Collator.getInstance(Locale.GERMAN);
//
// Sort the list using Collator
//
Collections.sort(words, collator);
Для дальнейшей проверки информации и как указано здесь
Эта программа показывает, что может произойти, если вы отсортируете один и тот же список слов с помощью двух разных коллатеров:
Collator fr_FRCollator = Collator.getInstance (новая локаль ("fr", "FR"));
Collator en_USCollator = Collator.getInstance (новая локаль ("en", "US"));
Метод сортировки, называемый sortStrings, может использоваться с любым Collator. Обратите внимание, что метод sortStrings вызывает метод сравнения:
public static void sortStrings(Collator collator,
String[] words) {
String tmp;
for (int i = 0; i < words.length; i++) {
for (int j = i + 1; j < words.length; j++) {
if (collator.compare(words[i], words[j]) > 0) {
tmp = words[i];
words[i] = words[j];
words[j] = tmp;
}
}
}
}
Английский Collator сортирует слова следующим образом:
персик
PECHE
pêche
Грех
Согласно правилам сопоставления французского языка, предыдущий список находится в неправильном порядке. Во французском péche должен следовать pêche в отсортированном списке. Французский Collator правильно сортирует массив слов следующим образом:
персик
pêche
PECHE
грех