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

3

我正在学习Lambda表达式,想知道如何返回一个排序后的字符串。例如,如果我的字符串是“cba”,我希望得到“abc”。通常情况下,我会写:

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

有没有一种使用lambda表达式在一行中完成这个操作的方法?

https://dev59.com/NGEh5IYBdhLWcg3w1mbs#21970805 - Faraz
请参考以下链接:http://stackoverflow.com/a/36255014/4828463 - Faraz
2个回答

2

是的,你可以像这样做:

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

2
你可以使用 String.chars() 中的 IntStream
    "cba"
            .chars()
            .sorted()
            .mapToObj(value -> (char) value)
            .collect(StringBuilder::new, StringBuilder::append, StringBuilder::append)
            .toString()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接