可能重复:
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
这是否有一个简单的内置方法?
答案 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());
}
});