3 回答
TA贡献1772条经验 获得超8个赞
像这样尝试:
System.out.print(total + ": ");
for(int j = 0; j < numAsterisks; j++)
{
System.out.print("*");
}
System.out.println("");
完成打印 *s 后打印下一行
TA贡献1865条经验 获得超7个赞
简单的解决方案是使用System.out.print(而不是println),它将在当前行上打印输出,例如...
System.out.print(total + ": ");
for (int j = 0; j < numAsterisks; j++) {
System.out.print("*");
}
System.out.println("");
稍微更高级的解决方案是利用 Java 的String格式化功能
System.out.print(String.format("%2d: ", total));
for (int j = 0; j < numAsterisks; j++) {
System.out.print("*");
}
System.out.println("");
它对齐列类似......
2:
3:
4:
5: ********************
6: ****************************************
7: **********
8: ********************
9:
10: **********
11:
12:
更高级的解决方案可能会利用 StringBuilder
StringBuilder sb = new StringBuilder(128);
sb.append(String.format("%2d: ", total));
for (int j = 0; j < numAsterisks; j++) {
sb.append("*");
}
System.out.println(sb.toString());
TA贡献1806条经验 获得超5个赞
您可能想先使用System.out.print()。
含义:第一打印总计数,然后调用println的asteriks字符(一次性)。
这将为您提供正确的顺序并在您想要的地方换行!
只是为了记录:Java 11 提供String.repeat(),它允许您执行类似"*".repeat(numAsterisks);
" 的操作来生成每行所需数量的星号字符。
添加回答
举报