我写了一种打印树干上的圣诞树的方法。现在,我的任务是使用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;
}
您需要使用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