java - 使用三重嵌套 for 循环来增加打印行的长度和计数

标签 java for-loop nested-for-loop

我很好奇如何编写这样的代码:

##
##
####
####
####
####
######
######
######
######
######
######
########
########
########
########
########
########
########
########
这是我尝试过的:
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/

    相关文章:

    java - 为什么下面的代码可以编译?

    c++ - C++中用for循环引用二维数组每一行的方法

    javascript - 循环(将项目存储在集合中)似乎迭代次数少于应有的次数?

    python - 确定矩阵中是否存在复数

    java - 从 java 读取 Arduino 上的 LED 状态

    java - 反转基于正则表达式的解析器

    Java - 修改列表会修改包含列表的对象

    flutter - 如何在 Dart/Flutter 中找到从一个列表匹配到另一个列表的所有元素的索引

    Python 2 - "For counting loop"