4

可能重复:
在Android中按字母顺序排序arraylist(不区分大小写)

大家好,我在排序时遇到了一个小问题。

我正在收集一个字符串类型的集合。当我排序时,它给了我我期望的错误结果

这是我的代码:

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

Collections.sort(caps);

它的排序如下:

Alpha Beta Delta alpha1 theta。

在这里它可以采用任何类型的字符串,甚至是大写/小写。但小写单词稍后会出现。

我想要这样的输出:

Alpha alpha1 Beta Delta theta

有一个简单的内置方法吗?

4

2 回答 2

13

Collections.sort();让您通过自定义比较器进行排序。对于不区分大小写的排序String类提供了一个名为 的静态最终比较器CASE_INSENSITIVE_ORDER

所以在你的情况下,所有需要的是:

Collections.sort(caps, String.CASE_INSENSITIVE_ORDER);

于 2012-11-09T19:13:52.387 回答
1

使用Comparator

Collections.sort(caps, new Comparator<String>{
    public int compare(String s1, String s2){
        return s1.toLowerCase().compareTo(s2.toLowerCase());
    }
});
于 2012-11-09T19:16:33.893 回答