![](/img/trans.png)
[英]How to sort a list that contains numbers and special characters alphabetically?
[英]Android : How To Sort An Arraylist of Special Characters Alphabetically?
我正在开发一个 android 应用程序,其中我有挪威语的数据。 现在,我必须按字母顺序对包含特殊挪威字符的名称列表进行排序。
Comparator<SetGetMethods> comperator = new Comparator<SetGetMethods>() {
public int compare(SetGetMethods object1, SetGetMethods object2) {
return object1.getCityname().compareToIgnoreCase(object2.getCityname());
}
};
Collections.sort(temp, comperator);
我使用上面的代码按字母顺序对列表进行排序。 但是经过排序后,带有正常字符的名称显示在顶部,带有特殊挪威字符的名称显示在它们下方。 例如,列表如下所示,
Arendal Bergen Drammen Ålesund -> (这应该在顶部,在 Arendal 之前排序后)
所以,我的问题是,我如何按字母顺序对列表数据包含特殊字符(挪威字符)的列表进行排序。 我将不胜感激任何解决问题的建议、想法或示例代码。 谢谢 .....
尝试这个
对于一个对象
class MyObject
{
public String name;
public int score;
}
如果您想按名称订购(在这种情况下使用挪威语),您可以这样做
Locale locale = new Locale("nb", "NO");
final Collator collator = java.text.Collator.getInstance(locale);
Collections.sort(your_array, new Comparator<MyObject>() {
@Override
public int compare(MyObject obj1, MyObject obj2) {
return collator.compare(obj1.name, obj2.name);
}
});
String norwegian = "< a, \u00E5;A< b,B< c,C< d,D< e,E< f,F< g,G< h,H< i,I< j,J" +
"< k,K< l,L< m,M< n,N< o,O< p,P< q,Q< r,R< s,S< t,T" +
"< u,U< v,V< w,W< x,X< y,Y< z,Z";
RuleBasedCollator myNorwegian = new RuleBasedCollator(norwegian);
List<String> words =
Arrays.asList("Arendal Bergen Drammen \u00E5lesund".split("\\s"));
System.out.println(words);
Collections.sort(words, myNorwegian);
System.out.println(words);
Locale locale = new Locale("nb", "NO");
final Collator collator = java.text.Collator.getInstance(locale);
Collections.sort(your_array, new Comparator<MyObject>() {
@Override
public int compare(MyObject obj1, MyObject obj2) {
return collator.compare(obj1.name, obj2.name);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.