我很好奇如何编写这样的代码:
##
##
####
####
####
####
######
######
######
######
######
######
########
########
########
########
########
########
########
########
这是我尝试过的:public class Main {
public static void main(String[] args) {
for (int i = 0; i <= 8; i += 2) {
for (int j = 0; j < i; j++) {
System.out.print('#');
}
System.out.println();
}
}
}
此代码显示:##
####
######
########
但它不会像有多少个字符那样打印行数。所以基本上,它增加 2,然后它显示的行数与循环内的字符数相同。我想不通。
第三个嵌套的 for 循环是什么样的?
最佳答案
这可以通过使用 String::repeat
的一个循环来完成。/Collections.nCopies
创建包含 N #
的行字符,然后创建 N 行:
1. String::repeat
实例方法 String::repeat
自 2018 年 9 月发布的 JDK 11 以来可用
for (int i = 2; i <= 8; i += 2) {
String row = "#".repeat(i) + "\n";
String rows = row.repeat(i);
System.out.print(rows);
}
2. String::join
+ Collections.nCopies
String::join
自 JDK 8 起可用 Collections::nCopies
自 JDK 1.2 起可用import static java.lang.String.join;
import static java.util.Collections.nCopies;
//...
for (int i = 2; i <= 8; i += 2) {
String row = join("", nCopies(i, "#"));
String rows = join("\n", nCopies(i, row));
System.out.println(rows);
}
关于java - 使用三重嵌套 for 循环来增加打印行的长度和计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64257047/