【发布时间】:2018-06-25 12:32:34
【问题描述】:
我正在尝试将 String 转换为 Stream<Character> 并遇到了这个奇怪的事情。
word.toCharArray() 似乎返回了一个 Array,但是当我尝试将其转换为 Arrays.asList(word.toCharArray()) 的列表时,它似乎失败了(输出是一个完整的 String强>)。
这里发生了什么?
@Test
public void testCharacterStream() {
characterStreamNew("HELLO");
}
private Stream<Character> characterStreamNew(String word) {
for(Character c: word.toCharArray()) {
out.println(c);
}
Arrays.asList(word.toCharArray()).stream()
.peek(out::println)
.forEachOrdered(out::println);
return null;
}
这是输出:
H
E
L
L
O
HELLO
HELLO
【问题讨论】:
-
相关:stackoverflow.com/a/1467940/1393766(基于
int但char与Character有同样的问题)。由于“问题解释”与“解决方案”不同,因此不会投票关闭作为重复项。 -
List仅支持引用,不支持原语。Arrays.asList不会自动装箱char[]的元素,而是返回一个带有一个char[]引用的列表。
标签: java arrays string java-8 java-stream