基本上我想看看是否有一种紧凑的lambda方式:
int n = ...
String s = "";
for (int i = 0; i < n; i++) {
s += 'a';
}
开始很简单,然后我迷路了:
IntStream.range(0, n). ??
答案 0 :(得分:5)
这样更好:
String s = Stream.generate(() -> "a").limit(n).collect(Collectors.joining());
答案 1 :(得分:2)
非常简单;
int n = 20;
System.out.println(IntStream.range(0, n).boxed().map(i -> "a").collect(Collectors.joining()));
打印出来;
aaaaaaaaaaaaaaaaaaaa
您必须boxed()
切换到Integer
信息流,然后将每个号码映射到"a"
字符串,这会将您的1,2,3,4...
信息流转换为{ {1}}并最终加入他们。
答案 2 :(得分:0)
为什么要使用stream / lambda呢?效率低下。
如果你想要一个单行,请尝试这样做:
String s = new String(new char[n]).replace('\0', 'a');