JLL*_*CHR 11 java arrays character-encoding
有人知道如何使用带有特殊字符(如重音符号)的单词来命令数组吗?
Arrays.sort(anArray);
'Albacete'以前回来'Álava',我想要'Álava'之前'Albacete'.
非常感谢
aio*_*obe 21
如果您只想对字符串进行排序,就好像它们没有重音一样,您可以使用以下内容:
Collections.sort(strs, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
o1 = Normalizer.normalize(o1, Normalizer.Form.NFD);
o2 = Normalizer.normalize(o2, Normalizer.Form.NFD);
return o1.compareTo(o2);
}
});
Run Code Online (Sandbox Code Playgroud)
相关问题:
对于更复杂的用例,您需要阅读java.text.Collator.这是一个例子:
Collections.sort(strs, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
Collator usCollator = Collator.getInstance(Locale.US);
return usCollator.compare(o1, o2);
}
});
Run Code Online (Sandbox Code Playgroud)
如果没有预定义的排序规则符合您的需求,您可以尝试使用java.text.RuleBasedCollator.