2014-01-27 47 views
0

我有這樣的值的列表:的Android如何排序字符串列表

列表[0] = 「myvalue_8」 列表[1] = 「myvalue_9」 名單[2] =「myvalue_15 「 名單[3] = 」myvalue_12「

當我整理我的名單像:

Collections.sort(myList); 

結果是:

列表[0] = 「myvalue_12」 列表[1] = 「myvalue_15」 列表[2] = 「myvalue_8」 列表[3] = 「myvalue_9」

代替:

列表[0] = 「myvalue_8」 列表[1] = 「myvalue_9」 列表[2] = 「myvalue_12」 列表[3] = 「myvalue_15」

非常感謝你

+1

參見[這個問題](http://stackoverflow.com/questions/104599/sort-on-a-string-that-may-contain-a-number )有關Alphanum算法的信息。 –

+0

您可以隨時刪除字符串的「myvalue_」部分,並使用其餘整數對自己進行排序。 –

回答

1

使用Comparator。在那裏定義要比較的內容以及如何在compare()方法中定義應該從兩個實例返回的內容。以下是StringComparator的示例。

Comparator<String> myComparator = new Comparator<String>() { 
    public int compare(final String user1, final String user2) { 
    // This would return the ASCII representation of the first character of each string 
    return (int) user2.charAt(0) - (int) user1.charAt(0); 
    }; 
}; 

然後你只需要調用Collections.sort(myList, myComparator);