我有一个波斯语项目列表,我想按字母顺序对它们进行排序。
据我了解,java 不支持正确按波斯字母顺序排序。
我的代码:
List<String> items = new ArrayList<>();
items.add("آب");
items.add("بابا");
items.add("تار");
items.add("پارک");
items.add("توت");
Collections.sort(items);
当我打印这个列表时,结果将是:
آب
بابا
تار
توت
پارک
但一定是这样的:
آب
بابا
پارک
تار
توت
问题出在这些字母上 我该如何解决?
最佳答案
在您问题的代码中,Java 使用 unicode 顺序对字符串进行排序,并且(我不得不猜测)这对波斯语没有帮助。
要正确排序,您可以使用 Java 提供的 Collator
功能。
Collator collator = Collator.getInstance(new Locale("fa", "IR"));
collator.setStrength(Collator.PRIMARY);
Collections.sort(items, collator);
不过,我不知道是否支持波斯语。
关于java - 按字母顺序排序数组列表(波斯语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43497368/