Collections.sort()没有按它应该排序

Pet*_*ter 1 java sorting

我想用这个方法对一个字符串数组进行排序:

private String[] sortAscending(String[] arrayToSort) {
    List<String> sortedList = Arrays.asList(arrayToSort);
    Collections.sort(sortedList);

    return (String[]) sortedList.toArray();
}
Run Code Online (Sandbox Code Playgroud)

这将对此数组进行排序

["Jens", "abCd", "test", "abC", "Peter"] 
Run Code Online (Sandbox Code Playgroud)

对此:

["Jens", "Peter", "abC", "abCd", "test"]
Run Code Online (Sandbox Code Playgroud)

但它应该是

["abC", "abCd", "Jens", "Peter", "test"]`
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Era*_*ran 6

Java中字符串的自然顺序是词典,它区分大小写.大写字母将出现在小写字母之前.

因此,您需要排序不区分大小写的顺序:

Collections.sort(sortedList, String.CASE_INSENSITIVE_ORDER);
Run Code Online (Sandbox Code Playgroud)