我尝试将String of Stream转换为Char of Stream。 例如:
Stream<String> -> "Hello", "World"
Stream<Char> -> "H","e","l","l","o","W","o","r","l","d"
我已经尝试过了
Stream<Character> temp = stream.forEachOrdered(s -> s.chars())
并且可能将它们映射到Char流中,但我无法弄明白......
答案 0 :(得分:1)
从答案here:
Stream<String> foo = ...
Stream<Character> characters = foo.flatMap(x -> x.chars().mapToObj(i -> (char) i));
或
Stream<Character> characters = foo.flatMapToInt(CharSequence::chars)
.mapToObj(i -> (char) i);
只需使用flatMap
或flatMapToInt
。
答案 1 :(得分:-2)
在Java 9+中,String类有一个返回IntStream的新方法chars()。 从那里你可以使用Character.valueOf。
在Java 8中,它更复杂。您可以使用String.toCharArray获取char数组,但在使用char[]
之前必须将Character[]
转换为Arrays.stream(T[])
。
但是,据我所知,没有内置的方法可以在不使用库或编码自己的转换方法的情况下从char[]
转换为Character[]
。