1、先将所有字母转小写,在将首字母转大写
list.stream() .map(n -> n.toLowerCase()) .sorted(Comparator.comparingInt(String::length)) .map(s -> Character.toUpperCase(s.charAt(0)) + s.substring(1)) .forEachOrdered(n -> System.out.println(n));
2、通substring()字符串截取实现
list.stream() .map(s -> s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase()) .sorted(Comparator.comparingInt(String::length)) .forEach(System.out::println);
还可以简单的封装一下
public class StringUtils { public static String capitalise(String s) { return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase(); } } list.stream() .map(StringUtils::capitalise) .sorted(Comparator.comparingInt(String::length)) .forEach(System.out::println);