StringBuilder而不是圣诞树中的System.out

问题描述 投票:0回答:1

我写了一种打印树干上的圣诞树的方法。现在,我的任务是使用StringBuilder消除系统输出。

我被困在这里。在我看来,最好执行StringBuilder,将所有内容聚合为字符串列表,然后在单独的方法中调用。因此,一种方法是创建一棵树,另一种方法将其调出并使用一个System.out打印。不幸的是,当我去执行计划时进展并不顺利。谁能建议如何开始?

public static List<String> getChristmassTree(int size) {
    //ArrayList<String> strings = new ArrayList<>(); Build a list of array ?
    // StringBuilder sb = new StringBuilder(100); create new StringBuilder
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size - i; j++) {
            System.out.println(" ");
        }
        for (int k = 0; k < (2 * i + 1); k++) {
            System.out.print("*");
        }
        System.out.println();
    }
    for (int j = 0; j < size; j++) {
        System.out.print(" ");
    }
    for (int trunk = size; trunk == size; trunk++) {
        System.out.print("**");
    }
    return strings;
}
java stringbuilder
1个回答
0
投票

您需要使用StringBuilder.append放置星号或返回字符

public static String getChristmassTree(int size) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size - i; j++) {
            sb.append(" ");
        }
        for (int k = 0; k < (2 * i + 1); k++) {
            sb.append("*");
        }
        sb.append("\n");
    }
    for (int j = 0; j < size; j++) {
        sb.append(" ");
    }
    sb.append("**");       // don't need a loop here 
    return sb.toString();
}

从Java 11开始,您可以使用String.repeat

String.repeat
© www.soinside.com 2019 - 2024. All rights reserved.