Ответ 1
Я собирался указать вам мой более ранний ответ на эту тему, но, оказывается, вы уже связались с этот вопрос. другой ответ также содержит полезную информацию.
Если вы хотите значения char
, вы можете использовать IntStream
, возвращенный String.chars()
, и отличить значения int
до char
без потери информации. В других ответах объясняется, почему нет CharStream
примитивной специализации для класса Stream
.
Если вам действительно нужны объекты в коробке Character
, используйте mapToObj()
для преобразования из IntStream
в поток ссылочного типа. В mapToObj()
введите значение int
в значение char
. Поскольку объект ожидается как возвращаемое значение здесь, char
будет автобоксирован в Character
. Это приводит к Stream<Character>
. Например,
Stream<Character> sch = "abc".chars().mapToObj(i -> (char)i);
sch.forEach(ch -> System.out.printf("%c %s%n", ch, ch.getClass().getName()));
a java.lang.Character
b java.lang.Character
c java.lang.Character