我希望我的程序呈三角形,中间有空格,如下图所示。 到目前为止,这是我的代码。
import java.util.Scanner;
public class Triangle {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String space= " ";
space.replaceAll("", " ");
int i = input.nextInt();
while (i > 0) {
for (int j = 0; j <1; j++)
System.out.print("*"+space.substring(0,0)+"*");
System.out.println();
i--;
}
}
当我运行此代码时,输出就是这个
**
**
**
**
**
**
**
**
**
我希望输出看起来像这样:
答案 0 :(得分:0)
首先,你的内部for循环不起任何作用。它只运行一次。即使你删除它,逻辑也是一样的。
for (int j = 0; j <1; j++)
其次,我觉得你想做这样的事情:
System.out.print("*"+space.substring(i)+"*");
确保你的字符串足够大于索引i
String space= " ";
答案 1 :(得分:0)
Scanner input = new Scanner(System.in);
int i=input.nextInt();
for (int j=0; j<(i-1); j++)
System.out.print(" ");
System.out.println("*");
for (int j=1; j<(i-1); j++)
{
for (int k=0;k<(i-1-j); k++)
System.out.print(" ");
System.out.print("*");
for (int k=0;k<(j*2)-1; k++)
System.out.print(" ");
System.out.println("*");
}
for (int j=0; j<(i*2-1); j++)
System.out.print("*");
System.out.println("");
答案 2 :(得分:0)
使用类似String.format("%3s, "*")
的内容,您可以定义宽度(此处为:3),从而定义输出的空白区域。如果你添加一些聪明的代码来定义每一行的宽度,你可以省去很多麻烦。
此外,重要的是要知道只有具有固定字母间距的字体才能起作用(如Currier New)。