我正在开发一个用于市场调查的android应用程序。在注册页面上,我有一个旋转器来列出所有的国家,我使用函数Arrays.sort()按字母顺序对列表进行排序。我把我的平板电脑语言保留为‘英语’,并得到了一个按字母顺序排列的列表。
但是,当我将tablet语言更改为葡萄牙语时,显示的列表没有排序(请参阅所附的屏幕快照)。这种语言有一些与英语不同的字母。我知道java根据字符的ASCII代码执行排序。但是,是否有其他方法来获得排序结果,而不管所使用的语言是什么。

发布于 2016-04-29 09:38:24
我认为您正在寻找一个具有特定选择Locale的Locale(比如英语,因为您已经声明它工作正常)。
所以你可以用这样的东西:
Collections.sort(yourArray, Collator.getInstance(new Locale("en", "US")));发布于 2016-04-29 16:45:21
我认为,在语言不包括这些字母的地区,在对字母进行排序时,你需要期待一些看似任意性的东西。排序规则可能指定排序,但不遵循您希望它遵循的规则。例如,在美国英语中,ณ和尼娜之间的正确顺序是什么?
一个选项是在您想要排序的每种语言中都有一个单独的列表,只使用该语言中的字母。(如果这样做不起作用,那么,一旦你走了那么远,你就可以在每个列表中有一个固定的排序。)
https://stackoverflow.com/questions/36934525
复制相似问题