2012-01-23 88 views
3

我正在打印一個乘法表,但它出來搞亂看。有沒有一種方法來半選項卡?

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中的下一行。 是否有一個半選項卡可以填充數據並使其看起來更具結構性,或者至少可以使它看起來更好。

回答

5

你可以使用System.out.printf分配字符固定數量的每個數字。例如

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

將在四字符字段中顯示n右對齊的值。

+0

完美!我們做了一個類似的雙倍和十進制運算。我沒有意識到也可以應用這一點。 – user1093111

0

我明白你在做什麼。我知道你在努力達到什麼目的。但是,除非在1,2,3,4,5 = tab的情況下使用「空格」,否則您將無法將「一半」選項卡。或者,你可以進入你的cmd屬性,並使窗口大小更寬。

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(); 
} 
+0

好吧,有道理 – user1093111

+0

非常感謝你! – user1093111

相關問題