ハイフン付きの文字列セットのセットがあります。ロケールを考慮してソートしたい。
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 は大文字と小文字を区別しない並べ替えを行うことになっていますが、上記の 2 つの方法を使用した順序には違いがあります。ハイフンで機能するロケールベースの大文字と小文字を区別しない並べ替え順序を実現するにはどうすればよいですか。
[アプリ - 大、アプリ - 小、Apple] - 予想される並べ替え順序