java - 按字母顺序排序数组列表(波斯语)

标签 java list sorting

我有一个波斯语项目列表,我想按字母顺序对它们进行排序。
据我了解,java 不支持正确按波斯字母顺序排序。

我的代码:

List<String> items = new ArrayList<>();
items.add("آب");
items.add("بابا");
items.add("تار");
items.add("پارک");
items.add("توت");

Collections.sort(items);

当我打印这个列表时,结果将是:

آب
بابا
تار
توت
پارک

但一定是这样的:

آب
بابا
پارک
تار
توت

问题出在这些字母上 我该如何解决?

最佳答案

在您问题的代码中,Java 使用 unicode 顺序对字符串进行排序,并且(我不得不猜测)这对波斯语没有帮助。

要正确排序,您可以使用 Java 提供的 Collat​​or 功能。

Collator collator = Collator.getInstance(new Locale("fa", "IR"));
collator.setStrength(Collator.PRIMARY);
Collections.sort(items, collator);

不过,我不知道是否支持波斯语。

关于java - 按字母顺序排序数组列表(波斯语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43497368/

相关文章:

java - 如何按类对 arrayList 中的对象进行排序?

java - 服务器端 - 进度条

jquery - 使用 jquery 根据下拉列表中选定的选项显示表行

java - 为双向链表的实现编写一个 add 方法,该链表在我向其中添加对象时进行排序

sorting - 反转 folder_contents 中的 Plone 默认排序顺序

Javascript按带分隔符的字符串中的字符串排序

java - 无法解决 IntelliJ 上关于项目语言级别的源错误

java - 将 Java 中的原始数组转换为对象并返回是否涉及装箱?

java - spring什么时候可以使用cglib来创建代理了?

css - 通过添加元素 React.js 的数量来更改 div 元素的高度