У меня есть массив строк вроде:
String[] strArray = { "Red", "green", "Blue", "Yellow", "violet", "magenta", "pURPLE" };
Я хочу, чтобы это преобразовало его в массив так, чтобы все строки в данном массиве имели первый символ в верхнем регистре. Ожидаемый результат должен быть:
[Blue, Green, Magenta, PURPLE, Red, Violet, Yellow]
Наконец, массив должен быть отсортирован (просто добавить операцию sorted()
).
Я пытаюсь это, но это не работает:
System.out.println(Arrays.stream(strArray)
.map((String x) -> {x=(x != null ? (x.substring(0,1).toUpperCase() + x.substring(1, x.length())) : "");})
.sorted()
.collect(Collectors.toList()));
Я получаю эту ошибку:
The method map(Function<? super String,? extends R>) in the type Stream<String> is not applicable for the arguments ((String x) -> {})
Я уверен, что мне не хватает какой-то мелочи, но я не могу понять, что.