有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java消除Pascals三角形上的前导空格

我有一些下面的示例代码来打印帕斯卡三角形。(我在扫描仪上使用测试用例=14)代码可以工作,但结果中有前导空格。如何删除三角形前面的这些空格

import java.util.Scanner;

public class PascalsTriangle {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        int rows = input.nextInt();

        for(int i = 0;i<rows;i++) {
            int pascal = 1;
            System.out.format("%"+(rows-i)*2+"s","");)

            for(int j=0;j<=i;j++) {
                 System.out.format("%4d", pascal);
                 pascal = pascal* (i - j) / (j + 1);
            }
            System.out.println();
    }


}
}

共 (1) 个答案

  1. # 1 楼答案

    我认为现在发生的事情是,你正在以4个字符的“块”输出你的数字,这一行负责这一部分

    String output = String.format("%4d", number);
    

    下面的代码将把数字输出到“框”的左侧,尽管现在空格将是尾随的

    String output = String.format("%-4d", number);
    

    这完全取决于n的最大值。例如,您可以决定每个数字将包含4个字符(如果所有数字实际上都是9999或更少,帕斯卡三角形有20行,则至少需要5个字符)。然后,您需要调整三角形每行中打印出的空格数