Simplest way to print an `IntStream` as a `String`
java, java-8, java-stream
Solution
String result = "Hello world."
.codePoints()
//.parallel() // uncomment this line for large strings
.map(c -> c == ' ' ? ' ': '*')
.collect(StringBuilder::new,
StringBuilder::appendCodePoint,
StringBuilder::append)
.toString();
But still, `"Hello world.".replaceAll("[^ ]", "*")` is simpler. Not everything benefits from lambdas.
Problem
With Java-8 I can easily treat a `String` (or any `CharSequence`) as an `IntStream` using either the `chars` or the `codePoints` method. ``` IntStream chars = "Hello world.".codePoints(); ``` I can then manipulate the contents of the stream ``` IntStream stars = chars.map(c -> c == ' ' ? ' ': '*'); ``` I have been hunting for a tidy way to print the results and I cant even find a simple way. How do I put this stream of `int`s back into a form that can be printed like I can a `String`. From the above `stars` I hope to print ``` ***** ****** ```