我正在学习Lambda表达式,想知道如何返回一个排序后的字符串。例如,如果我的字符串是“cba”,我希望得到“abc”。通常情况下,我会写:
String s = "cba";
char[] charList = s.toCharArray();
Arrays.sort(charList);
String sorted = charList.toString();
有没有一种使用lambda表达式在一行中完成这个操作的方法?
我正在学习Lambda表达式,想知道如何返回一个排序后的字符串。例如,如果我的字符串是“cba”,我希望得到“abc”。通常情况下,我会写:
String s = "cba";
char[] charList = s.toCharArray();
Arrays.sort(charList);
String sorted = charList.toString();
是的,你可以像这样做:
final String s = "cba";
final String collect = Arrays.stream(s.split(""))
.sorted()
.collect(Collectors.joining(""));
String.chars()
中的 IntStream
。 "cba"
.chars()
.sorted()
.mapToObj(value -> (char) value)
.collect(StringBuilder::new, StringBuilder::append, StringBuilder::append)
.toString()