一种简单的方法(以区分大小写的字母顺序对字符串进行排序)
我需要按字母顺序对字符串列表进行排序:
List<String> list = new ArrayList();list.add("development");
list.add("Development");
list.add("aa");
list.add("AA");
list.add("Aa");
常用的方法是使用比较器:
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
CaseInsensitiveComparator的问题是“ AA”等于“ aa”。字符串根据相同值的加法顺序出现在结果中,这是不正确的:
"aa","AA","Aa","development","Development"
回答:
如果您不想添加对番石榴的依赖关系(根据迈克尔的回答),那么此比较器是等效的:
private static Comparator<String> ALPHABETICAL_ORDER = new Comparator<String>() { public int compare(String str1, String str2) {
int res = String.CASE_INSENSITIVE_ORDER.compare(str1, str2);
if (res == 0) {
res = str1.compareTo(str2);
}
return res;
}
};
Collections.sort(list, ALPHABETICAL_ORDER);
而且我认为它易于理解和编码…
该方法的最后4行可以更简洁地编写如下:
return (res != 0) ? res : str1.compareTo(str2);
以上是 一种简单的方法(以区分大小写的字母顺序对字符串进行排序) 的全部内容, 来源链接: utcz.com/qa/420648.html