一种简单的方法(以区分大小写的字母顺序对字符串进行排序)

我需要按字母顺序对字符串列表进行排序:

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

回到顶部