选项卡式Java文本输出格式

时间:2014-04-29 00:48:56

标签: java formatting format output

我正在尝试使用实际上类似于三角形的print方法为我的Pascal三角形程序生成整齐的输出。我的方法包含在Triangle类中,如下所示:

public class Triangle {

protected int rows;
protected long[][] triangle;

public Triangle (int size) {

    rows = size;
    triangle = new long[rows + 1][];

    long[] zerothRow = {1};
    long[] firstRow  = {1, 1};


    int i = 0;

    do {

        if (i == 0) { triangle[0] = zerothRow; }
        else if (i == 1) { triangle[1] = firstRow; }
        else {

            triangle[i] = new long[i + 1];

            int j = 0;

            do { triangle[i][j] = MathUtil.combination(i, j); } while (++j <= i);
        }
    } while (++i <= rows);
}

public void print () {

    for (int i = 0; i < rows; ++i) {

        int k = rows - i;

        do { System.out.print("\t");} while (k --> 0);

        for (int j = 0; j < triangle[i].length; ++j) {

            System.out.printf("\t%d\t", triangle[i][j]);
        }

        System.out.println();

    }

  }
}

但是,当我从主驱动程序文件中调用此方法时,

public class Pascal {

public static void main(String[] args) {

    Triangle myTriangle = new Triangle(16);
    myTriangle.print();


 }

}

输出如下:

                                                                        1   
                                                                1       1   
                                                            1       2       1   
                                                        1       3       3       1   
                                                    1       4       6       4       1   
                                                1       5       10      10      5       1   
                                            1       6       15      20      15      6       1   
                                        1       7       21      35      35      21      7       1   
                                    1       8       28      56      70      56      28      8       1   
                                1       9       36      84      126     126     84      36      9       1   
                            1       10      45      120     210     252     210     120     45      10      1   
                        1       11      55      165     330     462     462     330     165     55      11      1   
                    1       12      66      220     495     792     924     792     495     220     66      12      1   
                1       13      78      286     715     1287        1716        1716        1287        715     286     78      13      1   
            1       14      91      364     1001        2002        3003        3432        3003        2002        1001        364     91      14      1   
        1       15      105     455     1365        3003        5005        6435        6435        5005        3003        1365        455     105     15      1   

我能做些什么来使三角形末端的文字不像现在那样倾斜吗?

1 个答案:

答案 0 :(得分:0)

不使用\t%d\t,而是使用%5d。这会打印所有数字,就好像它们是5位数字一样。