java - 将 `IntStream` 打印为 `String` 的最简单方法

标签 java java-8 java-stream

使用 Java-8,我可以轻松处理 String (或任何 CharSequence )作为 IntStream使用 charscodePoints方法。

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

然后我可以操作流的内容

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

我一直在寻找一种整洁的方法来打印结果,但我什至找不到简单的方法。我如何放置 int 的这个流s 回到一个可以像我一样打印的表格 String .

来自以上stars我希望打印

***** ******

最佳答案

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("[^ ]", "*") 更简单。并非所有东西都能从 lambdas 中受益。

关于java - 将 `IntStream` 打印为 `String` 的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20266422/

相关文章:

java - 如何使用 Java 8 流平面映射多个元素?

Java流将数组收集到一个列表中

java - 如何删除FTP目录中的所有txt文件?

java - @FXML 注释无法正常工作

java - 如何在java中读取在unix中声明的变量

java - 在Java中读取未知长度的Gzip文件

java - 切换到 iframe 并单击元素不起作用并获得 StaleElementReferenceException

java - Java 8 lambda 和匿名内部类之间的性能差异

java - 将encodeBase64消息放入Mysql中,当我收到此消息时,我有不同的结果

java - 从 HashMap 获取值并填充 Java 对象