如何将字符串转换为Java 8字符流?
我找到了从java字符串获取java.util.streams.IntStream的方法,但由于我使用的是java 8,所以还没有找到这个方法 更正:正如你们所指出的,我使用的是Java7。现在有了方法如何将字符串转换为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
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());