java – 将“IntStream”打印为“String”的最简单的方式

使用Java-8,我可以使用chars或codePoints方法轻松地将String(或任何CharSequence)视为IntStream。

IntStream chars = "Hello world.".codePoints();

然后我可以操纵流的内容

IntStream stars = chars.map(c -> c == ' ' ? ' ': '*');

我一直在搜索一个整洁的方式来打印结果,我甚至不能找到一个简单的方法。如何将这个int流返回到可以打印的表单,就像我可以一个String一样。

从上面的星星我希望打印

***** ******
最佳答案
String result = "Hello world."
  .codePoints()
//.parallel()  // uncomment this line for large strings
  .map(c -> c == ' ' ? ' ': '*')
  .collect(StringBuilder::new,
           StringBuilder::appendCodePoint, StringBuilder::append)
  .toString();

但是,“Hello world”还有,replaceAll(“[^]”,“*”)更简单。不是一切都从兰布斯受益。

转载注明原文:java – 将“IntStream”打印为“String”的最简单的方式 - 代码日志