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

如何将字符串转换为Java 8字符流?,java,java-8,java-stream,Java,Java 8,Java Stream,我找到了从java字符串获取java.util.streams.IntStream的方法,但由于我使用的是java 8,所以还没有找到这个方法 更正:正如你们所指出的,我使用的是Java7。现在有了方法chars()。但问题仍然存在: 如何从字符串中获取流?请确保您使用的是JDK 8。此方法位于CharSequence接口中,由字符串实现 此代码段工作正常: import java.util.stream.IntStream; public class CharsSample { p

我找到了从java字符串获取java.util.streams.IntStream的方法,但由于我使用的是java 8,所以还没有找到这个方法

更正:正如你们所指出的,我使用的是Java7。现在有了方法
chars()
。但问题仍然存在:


如何从字符串中获取

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

此代码段工作正常:

import java.util.stream.IntStream;

public class CharsSample {

    public static void main(String[] args) {
        String s =  "123";
        IntStream chars = s.chars();
    }
}

我本想就这个话题给你们指出,但事实证明你们已经链接到了。报告还提供了有用的信息

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

如果确实需要装箱的
Character
对象,请使用
mapToObj()
IntStream
转换为引用类型的流。在
mapToObj()
中,将
int
值强制转换为
char
。由于此处需要一个对象作为返回值,因此
char
将自动装箱到
字符中。这将导致
。比如说,

Stream<Character> 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
Stream sch=“abc”.chars().mapToObj(i->(char)i);
sch.forEach(ch->System.out.printf(“%c%s%n”,ch,ch.getClass().getName());
一个java.lang.com字符
b java.lang.Character
c java.lang.Character

我用另一种方法迟到了,方法是使用
模式
方法:
splitAsStream()

String test=“Lobgasex loga nepe co so x”

List chars=Pattern.compile(“”).splitAsStream(测试)
.map(i->i.charAt(0))
.collect(Collectors.toList());

是的,我让gradle使用Java 7。但是如何从字符串中获取流呢?@eldermel您使用的是Java 7还是Java 8?这些方法和类型对于Java8来说是新的。
List<Character> chars = Pattern.compile("").splitAsStream(test)
    .map(i -> i.charAt(0))
    .collect(Collectors.toList());