java在所有语言中按字母升序对国家/地区进行排序
我正在为市场调查开发一个安卓应用程序。在注册页面上,我有一个微调器来列出所有国家,我使用函数Arrays.sort()
按字母升序对列表进行排序。我将我的平板电脑语言保留为“英语”,并获得了按字母顺序排列的列表
但是,当我将平板电脑语言更改为葡萄牙语时,显示的列表没有排序(请参见随附的屏幕截图)。这种语言有一些不同于英语的字母表。我知道java根据字符的ASCII码执行排序。但是,无论使用哪种语言,是否还有其他方法可以获得排序结果呢
你可以在下面搜索框中键入要查询的问题!
我正在为市场调查开发一个安卓应用程序。在注册页面上,我有一个微调器来列出所有国家,我使用函数Arrays.sort()
按字母升序对列表进行排序。我将我的平板电脑语言保留为“英语”,并获得了按字母顺序排列的列表
但是,当我将平板电脑语言更改为葡萄牙语时,显示的列表没有排序(请参见随附的屏幕截图)。这种语言有一些不同于英语的字母表。我知道java根据字符的ASCII码执行排序。但是,无论使用哪种语言,是否还有其他方法可以获得排序结果呢
# 1 楼答案
我认为,在一个语言不包括这些字母的区域中对字母进行排序时,您需要期待一些看似任意的行为。排序规则可以指定顺序,但不能遵循您希望的规则。例如,在美式英语中,ñ和之间的正确顺序是什么ณ?
一个选项是,在您要排序的每种语言中都有一个单独的列表,只使用该语言中的字母。(如果这不起作用,那么,一旦你做到了这一点,你可以在每个列表中有一个固定的顺序。)
# 2 楼答案
我认为您正在寻找一个带有特定选择的
Locale
的Collator(就像英语一样,因为您已经声明它可以正常工作)所以你可以用这样的方法: