java - 使用本地化对字符串列表进行排序

标签 java sorting collections localization locale

我想根据用户区域设置在字符串列表下方排序

List<String> words = Arrays.asList(
      "Äbc", "äbc", "Àbc", "àbc", "Abc", "abc", "ABC"
    );

对于不同的用户区域设置,排序输出应该根据区域设置不同。

如何根据用户区域对以上列表进行排序?

我试过了

Collections.sort(words , String.CASE_INSENSITIVE_ORDER);

但这不适用于本地化,那么如何将语言环境参数传递给 Collections.sort() 或者有其他有效的方法吗?

最佳答案

您可以使用带有自定义比较器的排序。见 Collator interface

Collator coll = Collator.getInstance(locale);
coll.setStrength(Collator.PRIMARY);
Collections.sort(words, coll);

collat​​or 是一个比较器,可以直接传递给 Collections.sort(...) 方法。

关于java - 使用本地化对字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12889760/

相关文章:

java - 在 hibernate 中使用反真

java - 交换时仅将第一个单词的第一个字母大写

C++ 从文本文件中读取字典并将其存储在排序容器中的最佳方法是什么

c - C 程序中的搜索和排序?

java - 迭代器如何在并发 HashMap 中实现故障安全

java - FTL 中的 boolean 条件

java - 需要帮助存储二维数组中的特定值

c# - 检查两个集合中是否存在任何元素

java - 列表列表到 MapList Java 8 Lambda 的映射列表

java - Restrictions.sqlRestriction 参数索引超出范围