может кто из знающих подскажет
как из потока символов создать опять строку?
вот пример потока
"jopa".chars().map(c -> c + 1) ...
единственное чо нагуглил выглядит громоздко
String rez = "jopa".chars().mapToObj(c -> Character.toChars(c + 1)).collect(Collector.of(
StringBuilder::new, // метод_инициализации_аккумулятора
StringBuilder::append, // метод_обработки_каждого_элемента,
StringBuilder::append, // метод_соединения_двух_аккумуляторов
StringBuilder::toString // метод_последней_обработки_аккумулятора))
));
наверняка есть способ короче
Антон
23 уровень
заинтересовал такой вопрос
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Антон
17 января 2022, 07:31
так же нашел более короткий способ написания коллектора
0
Антон
15 января 2022, 10:23
В общем если кому интресно методом тыка нашел более короткий мой способ
String rez = "jopa"
.chars()
.mapToObj(c -> new StringBuilder(Character.toString(c + 1)))
.collect(Collectors.joining());
не создаем свой коллектор а в мап сразу создаем стрингбилдеры
0
Антон
15 января 2022, 07:06
Спасибо за интересный подход
0
hidden #598481
14 января 2022, 15:22
Например так:
В ByteArrayOutputStream есть метод toString с параметром charsetName, и можно тогда приводить к строке определенной кодировки. Но этот метод выбрасывает исключение, которое нужно обрабатывать:
Вместо этого можно сначала привести BAOS к массиву байт и использовать конструктор строки с параметром чарсета:
0