我想通过Java8的流将一个字符串数组按反向顺序(忽略大小写)排序,而不修改它,并将其打印出来。但我无法做到。
这是我的尝试:
这是我的尝试:
package experimentations.chapter02;
import java.util.Arrays;
import java.util.Comparator;
import java.util.stream.Collectors;
public class StringStream {
public static void main(String[] args) {
sortStrings();
}
public static void sortStrings(){
String[] stringsArray = "The quick brown fox has a dirty ladder".split("\\s+");
System.out.println(
Arrays.stream(stringsArray)
.sorted(Comparator.comparing(String::toLowerCase).reversed())
.collect(Collectors.toList())
);
}
}
这里的问题是String :: toLowerCase
在静态方法Comparator.comparing
中无法接受。
与此同时,我设法对数组进行排序,但是对其进行了修改:
public static void sortStrings(){
String[] stringsArray = "The quick brown fox has a dirty ladder".split("\\s+");
System.out.println(
Arrays.stream(stringsArray)
.map(String::toLowerCase)
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList())
);
}
那么,最简单的解决方法是什么?