Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于循环空间和数字的java嵌套_Java_For Loop - Fatal编程技术网

用于循环空间和数字的java嵌套

用于循环空间和数字的java嵌套,java,for-loop,Java,For Loop,我似乎不知道如何解决这个问题。我想在从1开始的每一行上添加一个数字并删除一个空格 for (int line = 1; line <= 5; line++) { for (int space = 5; space >= line + 1; space--) { System.out.print(" "); } System.out.println(line); } for(int line=1;line=line+1;空格--){ 系统输出打

我似乎不知道如何解决这个问题。我想在从1开始的每一行上添加一个数字并删除一个空格

for (int line = 1; line <= 5; line++) {
    for (int space = 5; space >= line + 1; space--) {
        System.out.print(" ");
    }
    System.out.println(line);
}
for(int line=1;line=line+1;空格--){
系统输出打印(“”);
}
系统输出打印项次(行);
}

解决问题的诀窍是认识到每行需要打印5个字符。每个数字的打印次数与它所代表的相同,剩余部分用空格填充

for (int i=1; i <= 5; i++) {
    // print 5 minus i spaces
    for (int j=5; j >= i + 1; j--) {
        System.out.print(" ");
    }
    // repeat the ith digit i times
    for (int k=0; k < i; ++k) {
        System.out.print(i);
    }
    System.out.print("\n");
}
但请注意,如果您想要更少的代码行,您甚至可以进一步简化:

for (int i=1; i <= 5; ++i) {
    String line = new String(new char[5-i]).replace("\0", " ") +
                  new String(new char[i]).replace("\0", String.valueOf(i));
    System.out.println(line);
}
for(inti=1;i试试这个

for (int line = 1; line <= 5; line++) {
        for (int space = 5; space >= line + 1; space--) {
            System.out.print(" ");
        }
        for (int k = 0; k < line ; k++) {
             System.out.print(line);
        }
        System.out.println("");
   }
for(int line=1;line=line+1;空格--){
系统输出打印(“”);
}
for(int k=0;k
谢谢Tim!你能在这里帮我解释一下思考过程吗?我简直不敢相信我没有添加另一个循环。这里非常新。第一个循环从左到右打印
5-I
空格,第二个循环,在同一行,从左到右打印数字
I
,I次。就是这样。再次感谢Tim!你不需要o将空字符串传递给println@PaulPearson你为什么选择这个作为被接受的答案?只是看起来很奇怪,@TimBiegeleisen首先回答了问题,提供了更多信息,提供了输出,一个可选的解决方案,回答了OP评论,并费心格式化OP问题-非常奇怪
for (int line = 1; line <= 5; line++) {
        for (int space = 5; space >= line + 1; space--) {
            System.out.print(" ");
        }
        for (int k = 0; k < line ; k++) {
             System.out.print(line);
        }
        System.out.println("");
   }