Android:如何按字母顺序对特殊字符数组列表进行排序?

Jun*_*aid 3 java sorting string android special-characters

我正在开发一个使用挪威语数据的android应用程序。现在,我必须按字母顺序对名称列表进行排序,其中名称包含特殊的挪威字符。

    Comparator<SetGetMethods> comperator = new Comparator<SetGetMethods>() {

        public int compare(SetGetMethods object1, SetGetMethods object2) {

                return object1.getCityname().compareToIgnoreCase(object2.getCityname());

        }

    };
    Collections.sort(temp, comperator);
Run Code Online (Sandbox Code Playgroud)

我使用上面的代码按字母顺序对列表进行排序。但是经过排序后,在顶部显示有普通字符的名称,在其下面显示有特殊挪威字符的名称。例如,列表显示如下,

Arendal Bergen DrammenÅlesund->(应放在最上面,排序后在Arendal之前)

所以,我的问题是,我如何按字母顺序对列表进行排序,其中列表数据包含特殊字符(挪威字符)。我将不胜感激任何建议,想法或示例代码来解决该问题。谢谢 .....

m4n*_*k4s 5

尝试这个

对于对象

class MyObject
{
  public String name;
  public int score;
}
Run Code Online (Sandbox Code Playgroud)

如果您想按名称订购(在这种情况下使用挪威语),则可以执行此操作

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);            
    }
});
Run Code Online (Sandbox Code Playgroud)