Sai*_*pta 0 java java-8 java-stream
如何在Java 8中转换Stream<Character>
成A String
?Collectors.joining()
期望CharSequence
因此它给编译错误。
转换Character
为String
Stream<Character> st = Stream.of('C','h','t');
String result = st.map(c->c.toString()).collect(Collectors.joining());
System.out.println(result); //Cht
Run Code Online (Sandbox Code Playgroud)
或者通过使用方法引用
st.map(Object::toString).collect(Collectors.joining())
Run Code Online (Sandbox Code Playgroud)
并在Collectors.joining
内部使用StringBuilder
这里
或者只是通过使用 forEach
StringBuilder builder = new StringBuilder();
Stream<Character> st = Stream.of('C','h','t');
st.forEach(ch->builder.append(ch));
Run Code Online (Sandbox Code Playgroud)
请参阅@jubobs解决方案链接。也就是说,您可以在这种情况下以这种方式进行操作:
Stream<Character> testStream = Stream.of('a', 'b', 'c');
String result = testStream.collect(Collector.of(
StringBuilder::new,
StringBuilder::append,
StringBuilder::append,
StringBuilder::toString));
Run Code Online (Sandbox Code Playgroud)
这是更高性能然后map/cast
ping命令的每个字符的String
第一,然后joining
,如StringBuilder#append(char c)
将切出的是中间步骤。
归档时间: |
|
查看次数: |
1801 次 |
最近记录: |