如何在Java中使用lambda表达式对字符串进行排序?

时间:2017-01-26 10:15:32

标签: java string lambda

我刚刚学习了lambda表达式,我想知道如何返回一个已排序的字符串。例如,如果我有" cba",我想要" abc"。通常我会这样做:

String s = "cba";
char[] charList = s.toCharArray();
Arrays.sort(charList);
String sorted = charList.toString();

有没有办法在一行中使用lambda表达式?

2 个答案:

答案 0 :(得分:2)

是的,你可以这样做:

final String s = "cba";
final String collect = Arrays.stream(s.split(""))
            .sorted()
            .collect(Collectors.joining(""));

答案 1 :(得分:2)

您可以使用IntStream

中的String.chars()
    "cba"
            .chars()
            .sorted()
            .mapToObj(value -> (char) value)
            .collect(StringBuilder::new, StringBuilder::append, StringBuilder::append)
            .toString()