【Java】使用StreamAPI进行”ズンドコキヨシ”操作
首先
最近在这篇文章中重新发现了一度流行的“一二一二三”的曲谱,所以我决定用Java编写这个曲谱。顺便说一下,我还将for循环束之高阁,重新复习了一下StreamAPI。
编写的代码
-
- 「ズン」もしくは「ドコ」のいずれかを格納した長さ5のListを作ります。
Stream.generate()を使う場合、Streamが無限に続かないようにlimitを付ける必要があります。
Listを半角スペースでJoinした結果が「ズン ズン ズン ズン ドコ」になるまで、do~whileのループを繰り返します。
必ず1回はループに入るので、最初に終了条件を判定するwhileではなく、最後に終了条件を判定するdo~whileを使いました。
最後に「キヨシ!!」を付け足して標準出力します。
package zundoko;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ZundokoStream {
public static void main(String[] args) {
Random rnd = new Random();
String[] zunDoko = { "ズン", "ドコ" };
String songLyrics = "";
do {
List<String> phrases =
Stream.generate(() -> zunDoko[rnd.nextInt(2)])
.limit(5)
.collect(Collectors.toList());
songLyrics = String.join(" ", phrases);
} while (!songLyrics.equals("ズン ズン ズン ズン ドコ"));
System.out.print(songLyrics);
System.out.println(" キヨシ!!");
}
}
ズン ズン ズン ズン ドコ キヨシ!!
请提供参考链接。
-
- インタフェースStream
-
- Java Stream – Streamインスタンスの生成
- ずんどこプログラム