У меня есть набор наборов строк через дефис. Что я хочу отсортировать с учетом локали.
List<String> words = Arrays.asList("App - Small", "Apple", "App - Big");
Collator collator = Collator.getInstance(new Locale("en"));
// Sort Method 1
Collections.sort(words, String.CASE_INSENSITIVE_ORDER);
System.out.println(words.toString());
// Sort Method 2
collator.setStrength(Collator.PRIMARY);
Collections.sort(words, collator);
System.out.println(words.toString());
Результат
String.CASE_INSENSITIVE_ORDER
[App - Big, App - Small, Apple]
Collator.PRIMARY
[App - Big, Apple, App - Small]
Хотя предполагается, что Collator.PRIMARY выполняет сортировку без учета регистра, существует разница между порядком с использованием двух вышеуказанных методов. Как я могу добиться порядка сортировки на основе локали без учета регистра, который работает с дефисом.
[Приложение — большое, Приложение — маленькое, Apple] — ожидаемый порядок сортировки