Tag: 整理

用Java排序阿拉伯语单词

我有一份阿拉伯语单词列表,我想对其进行排序。 我已尝试使用不同语言环境的标准Collat​​or(如英语或法语但没有太多希望),我甚至创建了自己的RuleBasedCollat​​or但无济于事。 显然,默认排序依赖于unicode值顺序,在许多情况下,这种顺序有效,但显然不在这一顺序中。 遵循javadocs的说明,RuleBasedCollat​​or需要一个字符串,按照您希望它们排序的顺序指定字符。 我使用此表中的unicode代码创建了以下字符串: String arabicLetters = “< \u0623=\uFE83=\uFE84 < \u0628=\uFE8F=\uFE90=\uFE92=\uFE91 < \u062A=\uFE95=\uFE96=\uFE98=\uFE97 < \u062B=\uFE99=\uFE9A=\uFE9C=\uFE9B < \u062C=\uFE9D=\uFE9E=\uFEA0=\uFE9F < \u062D=\uFEA1=\uFEA2=\uFEA4=\uFEA3 < \u062E=\uFEA5=\uFEA6=\uFEA8=\uFEA7 < \u062F=\uFEA9=\uFEAA < \u0630=\uFEAB=\uFEAC < \u0631=\uFEAD=\uFEAE < \u0632=\uFEAF=\uFEB0 < \u0633=\uFEB1=\uFEB2=\uFEB4=\uFEB3 < \u0634=\uFEB5=\uFEB6=\uFEB8=\uFEB7 < \u0635=\uFEB9=\uFEBA=\uFEBC=\uFEBB < \u0636=\uFEBD=\uFEBE=\uFEC0=\uFEBF < \u0637=\uFEC1=\uFEC2=\uFEC4=\uFEC3 < \u0638=\uFEC5=\uFEC6=\uFEC8=\uFEC7 < \u0639=\uFEC9=\uFECA=\uFECC=\uFECB < \u063A=\uFECD=\uFECE=\uFED0=\uFECF < \u0641=\uFED1=\uFED2=\uFED4=\uFED3 < \u0642=\uFED5=\uFED6=\uFED8=\uFED7 < \u0643=\uFED9=\uFEDA=\uFEDC=\uFEDB < \u0644=\uFEDD=\uFEDE=\uFED0=\uFEDF < […]

Java数组排序UTF-8

我想对ArrayList进行排序,但问题是我的母语字符 – 我的字母是这样的: a, ą, b, c, č, d, e, f … z, ž 。 如你所见, z字符在结尾处是第二个,而在字母表中是第二个,所以在对数组进行排序后,它的排序不正确。 我的所有母语字符都移动到数组的末尾。 例: package lt; import java.util.ArrayList; import java.util.Collections; public class test { public static void main(String[] args) { List items = new ArrayList(); items.add(“bbc”); items.add(“ąbc”); items.add(“abc”); items.add(“zzz”); System.out.println(“Unsorted: “); for(String str : items) { System.out.println(str); } Collections.sort(items); System.out.println(); […]

Java排序规则忽略了空间

我最近意识到,Java Collat​​ion似乎忽略了空间。 我有以下术语列表: Amman Jost Ammann Heinrich Ammanner Josef Bär Walter Bare Werner Barr Burt Barraud Maurice 上面的订单反映了德国的所需订单,即占用空间。 但是,Java Collat​​ion使用 Collator collator = Collator.getInstance(Locale.GERMANY); Collections.sort(values, collator); 给我以下顺序: Amman Jost Ammanner Josef Ammann Heinrich Bare Werner Barraud Maurice Barr Burt Bär Walter 上面的结果实际上并不是我所期望的,因为空间没有被考虑(看起来像这里描述的情况: 维基百科字母顺序 )。 这是否意味着,Java Collat​​ion不适用于此类用例,或者我在这里做错了什么? 有没有办法让Java Collat​​ion空间有意识? 我很乐意提出任何意见或建议。