从Stream <string>创建Stream <character>

时间:2018-05-24 16:17:03

标签: java string char java-stream

我尝试将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流中,但我无法弄明白......

2 个答案:

答案 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);

只需使用flatMapflatMapToInt

答案 1 :(得分:-2)

在Java 9+中,String类有一个返回IntStream的新方法chars()。 从那里你可以使用Character.valueOf。

在Java 8中,它更复杂。您可以使用String.toCharArray获取char数组,但在使用char[]之前必须将Character[]转换为Arrays.stream(T[])。 但是,据我所知,没有内置的方法可以在不使用库或编码自己的转换方法的情况下从char[]转换为Character[]