这是区域设置字母顺序:wikipedia
这是我的代码:
public static void main(String[] args) {
Locale loc = new Locale("sr","RS");
Collator col = Collator.getInstance(loc);
col.setStrength(Collator.SECONDARY);
List<String> slova = new ArrayList<String>();
slova.add("Austrija");
slova.add("Slovačka");
slova.add("Č");
slova.add("Đ");
slova.add("C");
slova.add("Grčka");
slova.add("Slovenija");
slova.add("Španija");
slova.add("Švajcarska");
slova.add("Švedska");
slova.add("Srbija");
Collections.sort(slova,col);
for(String s: slova)
System.out.println(s);
}
这是输出:
Austrija
ç
Č
Grčka
Slovačka
斯洛文尼亚
Španija
Srbija的
Švajcarska
Švedska
Đ
从上面的链接可以看出,这不是正确的排序 我做错了什么?
答案 0 :(得分:3)
正如我在wikipedia页面上找到的那样,@ Vash找到了他的ISO链接。我认为你的意思是“sr”塞尔维亚?然后你必须选择“cs”作为国家。
编辑:这取决于您使用的java版本。 Java 6使用新的iso标准。
答案 1 :(得分:1)
我认为问题可能是ISO-3166中没有代码为RS
的国家/地区答案 2 :(得分:0)
如果您想要的排序顺序不可用,您可以使用a创建自己的订单 RuleBasedCollator。不要害怕本课程的文档。它很简单:
String rules = "< a < b < c < ç < d ...";
RuleBasedCollator myRuleBased = new RuleBasedCollator(rules);
Collections.sort(myList, myRuleBased);
答案 3 :(得分:-1)
刚刚发现这是一个由政治和语言环境引起的已知问题。谢谢你的帮助。