当前位置: 首页 > 面试题库 >

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

闻人献
2023-03-14
问题内容

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

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);


 类似资料:
  • 问题内容: 我有一个包含人名的字符串arraylist 。我想按字母顺序对arraylist进行排序。 我试图以上述方式对列表进行排序。但是它将排序后的数组显示为: 但我不想使其区分大小写。我想要的结果是: 问题答案: 自定义应该有帮助 或者,如果你使用的是Java 8:

  • 我已经用其他语言编写了相当多的程序,但是我对PowerShell还相当陌生。我知道比较运算符的大小写敏感版本,但我对一些结果感到紧张.. 我假设PowerShell在进行字符串比较时使用了ASCII(Unicode)值,所以我预计 结果是错误的——但事实并非如此 这就有了一些直观的感觉(lower一定要小于upper-right?)但是从ASCII的角度来看没有意义。对于罗马字母字符来说,这种情况

  • 问题内容: 如何在下面按不区分大小写的顺序对字符串值进行排序? 我这样写: 如何在此处传递不区分大小写的字符串选项? 问题答案: 试试这个

  • 问题内容: 我想按字母顺序对JAVA中的字符串进行排序,如下所示:AaBbCcDdEeFfGg之后是大写字母和小写字母。例如,如果我把AbaC退还给我AabC,谢谢! 问题答案: 如果先将字符放入数组中,则可以使用进行此操作。(为了使用不区分大小写的自定义比较器,它必须是对象数组,而不是基元。)

  • 本文向大家介绍Java程序以区分大小写的顺序对数组进行排序,包括了Java程序以区分大小写的顺序对数组进行排序的使用技巧和注意事项,需要的朋友参考一下 可以使用java.util.Arrays.sort()方法以区分大小写的顺序对数组进行排序。在这种情况下,此方法仅需要单个参数,即要排序的数组。演示此的程序如下所示- 示例 输出结果 现在让我们了解上面的程序。 首先定义数组arr []。然后打印未

  • 我使用的是mySQL和排序规则。 我尝试了以下查询: 结果是: 是否在上面的排序规则中设置了这种排序类型(小写字母按降序排列)? 另外,如果我运行以下查询: 结果是: 再次以升序排列,小字母排在第一位。我不明白。请给我解释一下。 如何更改数据库排序规则?