![](/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.