有没有办法半标签?

时间:2012-01-23 03:36:38

标签: java arrays tabs 2d

我正在打印一个乘法表,但看起来很乱。

 1 2 3 4 5 6 7 8 9 10 11 12
 2 4 6 8 10 12 14 16 18 20 22 24
 3 6 9 12 15 18 21 24 27 30 33 36
 4 8 12 16 20 24 28 32 36 40 44 48
 5 10 15 20 25 30 35 40 45 50 55 60
 6 12 18 24 30 36 42 48 54 60 66 72
 7 14 21 28 35 42 49 56 63 70 77 84
 8 16 24 32 40 48 56 64 72 80 88 96
 9 18 27 36 45 54 63 72 81 90 99 108
 10 20 30 40 50 60 70 80 90 100 110 120
 11 22 33 44 55 66 77 88 99 110 121 132
 12 24 36 48 60 72 84 96 108 120 132 144

当我选中它时,数据溢出到CMD中的下一行。 是否有一个半标签可以填充数据并使其更具结构化外观,或者至少是一种使其看起来更好的方法。

3 个答案:

答案 0 :(得分:6)

您可以使用System.out.printf为每个数字分配固定数量的字符。例如

System.out.printf("%4d", n);

将在四个字符的字段中显示n右对齐的值。

答案 1 :(得分:0)

我明白你在做什么。我知道你想要实现的目标。但除非你在1,2,3,4,5 = tab的实施中使用“空格”,否则你将无法“标记”一半。或者,您可以进入cmd属性并使窗口大小更宽。

答案 2 :(得分:0)

您可以检查您的号码占用的字符数,并在打印号码后从您插入的一定数量的填充空格中减去该数字。即

  

我使用8个空格填充。数字123有3个字符因此我   将垫5个空格。数字12有2个字符,所以我将填充6个空格等。

代码可能类似于:

int maxPadding = 8;
int[] listOfNumbers = {1, 11, 111, 2, 22, 222};

for (int number : listOfNumbers){

    System.out.print(number);    

    int numberOfWhitespaces = maxPadding - int.length;

    for(int i = 0; i < numberOfWhitespaces; i++){
        System.out.print(" ");
    }

    System.out.println();
}