Фактическая ошибка, которую вы видите:
| no suitable method found for stream(char[])
| method java.util.Arrays.<T>stream(T[]) is not applicable
| (inference variable T has incompatible bounds
| equality constraints: char
| lower bounds: java.lang.Object)
| method java.util.Arrays.<T>stream(T[],int,int) is not applicable
| (cannot infer type-variable(s) T
| (actual and formal argument lists differ in length))
| method java.util.Arrays.stream(int[]) is not applicable
| (argument mismatch; char[] cannot be converted to int[])
| method java.util.Arrays.stream(long[]) is not applicable
| (argument mismatch; char[] cannot be converted to long[])
| method java.util.Arrays.stream(double[]) is not applicable
, поэтому, если вы посмотрите в документацию java.util.Arrays
класса и найдете метод stream
, который вы действительно увидитетолько то, что метод stream
перегружен для
double[]
, возвращающего DoubleStream
int[]
, возвращающего IntStream
long[]
возврат LongStream
T[]
возврат Stream<T>
Просто нет CharStream
.
Вы - лучшая ставка,ИМХО это сделать:
jshell> String input = "test";
input ==> "test"
jshell> input.codePoints().forEach((c) -> { System.out.println(c); })
116
101
115
116
или
jshell> input.codePoints().forEach((c) -> { System.out.println((char)c); })
t
e
s
t
Другие ответы на этот вопрос имеют другие альтернативы.