排序列表时Android忽略大小写

时间:2011-03-28 04:32:57

标签: java android sorting collections case-insensitive

我有一个名为path的List我正在使用以下代码

对字符串进行排序
  java.util.Collections.sort(path);

这样工作正常它会对我的列表进行排序但是它会以不同的方式处理第一个字母的情况,即使用大写字母对列表进行排序,然后使用小写字母对列表进行排序,如果我有以下猫狗鸟斑马它会像它一样排序

Bird
Zebra
dog
cat

所以如何忽略案例,以便狗和猫在斑马之前但在鸟之后? 感谢您的帮助

3 个答案:

答案 0 :(得分:11)

使用内置字符串比较器String.CASE_INSENSITIVE_ORDER

java.util.Collections.sort(path, String.CASE_INSENSITIVE_ORDER);

答案 1 :(得分:3)

创建自定义比较器类:

import java.util.Comparator;

class IgnoreCaseComparator implements Comparator<String> {
  public int compare(String strA, String strB) {
    return strA.compareToIgnoreCase(strB);
  }
}

然后你的排序:

IgnoreCaseComparator icc = new IgnoreCaseComparator();

java.util.Collections.sort(path,icc);

答案 2 :(得分:3)

Collections.sort(path,new Comparator<String>(){
   public int compare(String strA, String strB) {
    return strA.compareToIgnoreCase(strB);
  }
});