Java 更改代码的打印方式

Java 更改代码的打印方式,java,formatting,string-formatting,Java,Formatting,String Formatting,我需要帮助找出如何改变我的代码打印输出的方式,我知道它将做一些处理 n、 n-1,n-2,。。。等的间距,但我如何做到这一点,使我得到这个 1 2 1 3 2 1 ... 3 2 1 而不是这个 1 1 2 1 2 3 1 2 3... //显示按递增顺序输入的数字模式的程序 导入java.util.Scanner; 公共类显示模式 { 公共静态void main(字符串ar[] { //初始化扫描仪 扫描仪输入=新扫描仪(Syst

我需要帮助找出如何改变我的代码打印输出的方式,我知道它将做一些处理

n、 n-1,n-2,。。。等的间距,但我如何做到这一点,使我得到这个

        1
      2 1
    3 2 1
... 3 2 1
而不是这个

  1
  1 2
  1 2 3
  1 2 3...

//显示按递增顺序输入的数字模式的程序
导入java.util.Scanner;
公共类显示模式
{  
公共静态void main(字符串ar[]
{
//初始化扫描仪
扫描仪输入=新扫描仪(System.in);
//获取用户输入/启动循环
while(true)
{
//接收用户输入
System.out.println(“输入一个正整数以显示模式:”);
int x=input.nextInt();
//显示用户输出
显示模式(x);
//循环的延续
System.out.println(“是否要继续(Y/N)”;
字符串s=input.nextLine();
s=input.nextLine();
s=s.toLowerCase();
如果(s.charAt(0)='n')
打破
}           
}  
公共静态void显示模式(int n)
{
//以递增顺序创建数字金字塔
对于(int i=1;i0;j--)
{ 
系统输出打印(“+j”);
}  
系统输出打印(“\n”);
}  
}  

}
您需要确保为未首先打印的数字创建空格,因此我们始终使用用户输入启动内部循环

这应该适合您:

public static void displayPattern(int n) {
    // Create pyramid of numbers with increasing order
    for (int i = 1; i <= n; i++) {
        for (int j = n; j > 0; j--) {
            if (j > i) {
                System.out.print("  ");
            } else {
                System.out.print(" " + j);
            }
        }
        System.out.print("\n");
    }
}
公共静态void显示模式(int n){
//以递增顺序创建数字金字塔
对于(int i=1;i 0;j--){
如果(j>i){
系统输出打印(“”);
}否则{
系统输出打印(“+j”);
}
}
系统输出打印(“\n”);
}
}

答案很简单,只需计算出每行要显示多少空格,然后编写代码即可。空格的数量应该遵循一个简单的模式,这样你就可以根据
i
n
算出一个简单的代数公式。或者,你可以先用
s=s+“”+j
之类的东西来构建字符串。然后在构建整个字符串时,查看
s.length()
并从某个字符串中减去长度,以计算在打印
s
之前要打印多少空格。