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);