如何将字符串转换为Java 8字符流?

我发现这个问题是从java String中获取java.util.streams.IntStream但是我现在还没有找到这个方法,因为我使用的是Java 8。

更正:正如你们指出的那样,我使用的是Java 7.现在方法chars()就在那里。 但问题仍然适用:

如何从字符串中获取Stream

我将指出你之前关于这个主题的回答 ,但事实certificate你已经链接到了这个问题 。 另一个答案也提供了有用的信息。

如果需要char值,可以使用String.chars()返回的IntStream ,并将int值转换为char而不会丢失信息。 其他答案解释了为什么Stream类没有CharStream原始特化。

如果你真的想要盒装的Character对象,那么使用mapToObj()IntStream转换为引用类型的流。 在mapToObj() ,将int值转换为char 。 由于对象在此处被期望作为返回值,因此char将被自动装箱为Character 。 这导致Stream 。 例如,

 Stream 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 

请确保您使用的是JDK 8.此方法位于CharSequence接口中,由String实现。

这个片段工作正常:

 import java.util.stream.IntStream; public class CharsSample { public static void main(String[] args) { String s = "123"; IntStream chars = s.chars(); } }