如何在Java中打印星形图案?

时间:2019-07-08 16:31:32

标签: java

如何使用Java打印以下星形图案?

* - ***********
*** - *********
***** - *******
******* - *****
********* - ***
*********** - *

我是Java的新手,我尝试打印矩形循环,但是如何在矩形内部打印-?

public static void main(String[] args) {
    for (int i = 0; i < 6; i++)
    {
        for (int j = 0; j <= 14; j++)
        {
            System.out.print("*");
        }
        System.out.println();
    }
}

3 个答案:

答案 0 :(得分:4)

连字符是在奇数星号后打印的。

在第一行中出现一颗星后。

第二行三颗星之后。

第三行中的五颗星之后。

以此类推。

我们可以从外部循环变量i中找到何时打印连字符。

因此,您可以查看j的值是否等于2i,如果为true,则打印连字符。

for (int i = 0; i < 6; i++)
{
    for (int j = 0; j <= 11; j++)
    {
        System.out.print("*");
        if (j == i * 2) {
            System.out.print(" - ");
        }
    }
    System.out.println();
}

答案 1 :(得分:1)

尝试这个。您必须声明新变量“ count = 0”并在外部循环中迭代2。

public static void main(String[] args) {
    int count = 1;
    for(int i = 0; i < 6; i++){
        for(int j =0 ; j<13; j++){
            if(count==j){
                System.out.print(" - ");
            }
            else
                System.out.print("*");
        }
        count = count+2;
        System.out.println("");
    }
}

输出:

* - ***********
*** - *********
***** - *******
******* - *****
********* - ***
*********** - *

答案 2 :(得分:0)

一种非常简单的方法呢:只需将原始字符串右移2个位置:

public static void printStarPattern() {
    String str = "* - ***********";
    int length = str.length();
    int offs = 2;

    for (int row = 0; row < 6; row++) {
        System.out.println(str);
        // rotate string to 'offs' positions right
        str = str.substring(str.length() - offs) + str.substring(0, length - offs);
    }
}