【问题标题】:Create a Stream<Character> from a Stream<String>从 Stream<String> 创建 Stream<Character>
【发布时间】:2018-05-24 16:17:03
【问题描述】:

我尝试将字符串流转换为字符流。 示例:

Stream<String> -> "Hello", "World"

Stream<Char> -> "H","e","l","l","o","W","o","r","l","d"

我已经尝试过 Stream&lt;Character&gt; temp = stream.forEachOrdered(s -&gt; s.chars()) 并且可能将它们映射到 Char 流中,但我无法弄清楚..

【问题讨论】:

标签: java string char java-stream


【解决方案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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    猜你喜欢
    • 2018-08-25
    • 2021-12-19
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 2016-08-03
    相关资源
    最近更新 更多