如何在Android中正确排序数组中的大写和小写字符串?

时间:2012-11-09 19:10:43

标签: java arrays sorting

  

可能重复:
  Sorting arraylist in Android in alphabetical order (case insensitive)

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

我正在使用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版 三角洲 ALPHA1 THETA。

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

我希望外出如下:

α ALPHA1 Beta版 三角洲 theta

这是否有一个简单的内置方法?

2 个答案:

答案 0 :(得分:11)

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

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

Collections.sort(caps, String.CASE_INSENSITIVE_ORDER);

答案 1 :(得分:1)

使用Comparator

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