Java-星空广场(不能使用右换行符)

时间:2018-07-31 07:28:01

标签: java netbeans

该程序的主要目的是创建一个正方形的星星,例如:

***
***
***

为此,我需要使用预制函数,例如

public static void printStars(int amount) {
    int counter = 0;
    while (counter < amount) {
        System.out.print("*");
        counter++;
    }
}

现在,我的代码存在的问题是我创建的

***

***

***

或者我创建

*********

public static void printSquare(int sideSize) {
    int i = 0;
    while (i < sideSize) {
        printStars(sideSize);
        i++;
    }
}

这将产生星星作为一条线。显然,从测试看来,我需要在第一个函数中输入一个换行符,但是当我这样做时,它会创建一个更大的换行符,因为我认为解决方案是

public static void printStars(int amount) {
    int counter = 0;
    while (counter < amount) {
        System.out.print("*");
        counter++;
    }
system.out.print("\n");
}

由于使用的换行符要大得多。

所以我的问题是:如何进行正确的换行?

在此先感谢您,对同样的问题表示歉意。

TLDR: 继续制作

***

***

***

代替

***
***
***

3 个答案:

答案 0 :(得分:0)

在编码中存在错误,而不是使用

System.out.print("/n")

我用过

System.out.println("/n") 

表示打印两个换行符,而不是一个。

答案 1 :(得分:0)

您可以使用StringBuilder来更轻松地控制打印内容(最后只需使用System.out.println()一行打印即可:

public class Test {

    public static void main(String args[]) {
        printSquare(3);
    }

    public static void printStars(int amount) {
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < amount; i++) {
            builder.append("*");
        }
        System.out.println(builder.toString());
    }

    public static void printSquare(int amount) {
        for (int i = 0; i < amount; i++) {
            printStars(amount);
        }
    }
}

答案 2 :(得分:0)

以下代码可帮助您打印所需的输出,即

***
***
***

public class PrintPattern {

    public static void main(String[] args) {
        for(int i=0;i<3;i++){
            printStars(5);
        }
    }

    public static void printStars(int amount) {
        int counter = 0;
        while (counter < amount) {
            System.out.print("*");
            counter++;
        }
        System.out.print("\n");
    }

}