2012-11-09 22 views
2

可能重複:
Sorting arraylist in Android in alphabetical order (case insensitive)如何在Android中正確排列數組中的大小寫字符串?

大家好我在整理一個小問題。

我正在採取一個String類型的集合。當我整理它給我錯誤的結果,我期待

這裏是我的代碼:

List <String> caps = new ArrayList<String>(); 
caps.add("Alpha"); 
caps.add("Beta"); 
caps.add("alpha1"); 
caps.add("Delta"); 
caps.add("theta"); 

Collections.sort(caps); 

據排序,如:

阿爾法 Beta版 三角洲 α1 THETA。

在這裏它可以採取任何類型的字符串,甚至大寫/小寫。但小寫字會在晚些時候發佈。

我要出去放像:

阿爾法 α1 貝塔 三角洲 THETA

有一個簡單的內置的方法嗎?

回答

10

Collections.sort();可讓您傳遞自定義比較器進行排序。對於不區分大小寫的排序,String類提供了一個稱爲CASE_INSENSITIVE_ORDER的靜態最終比較器。

所以你的情況一切需要的是:

Collections.sort(caps, String.CASE_INSENSITIVE_ORDER);

1

使用Comparator

Collections.sort(caps, new Comparator<String>{ 
    public int compare(String s1, String s2){ 
     return s1.toLowerCase().compareTo(s2.toLowerCase()); 
    } 
}); 
+1

使用'compareToIgnoreCase',而不是這個答案。 –

相關問題