2013-07-04 54 views
0

目前,我有以下方法:如何格式化整數數組在Java中

public static void printDoubleIntArray(int[][] doubleIntArray) { 
for (int x = 0; x < doubleIntArray.length; x++) { 
    System.out.println(); 
    for (int y = 0; y < doubleIntArray[x].length; y++) { 
    System.out.print(doubleIntArray[x][y]); 
    } 
} 
} 

它完美的參數「doubleIntArray」僅僅是數字0 - 9如以下打印出來:

0000000 
0000300 
0033332 
0023323 
0022223 
0023233 
0003332 

然而,如果在陣列中的每個元素的整數變得大於9然後我得到類似如下:

0000000 
000121797 
001717171716 
0101617171617 
001616161617 
081617161717 
001417171716 

我想知道的是我怎麼做上面的例子打印出像這樣:

0 0 0 0 0 0 0 
0 0 0 12 17 9 7 
0 0 17 17 17 17 16 
0 10 16 17 17 16 17 
0 0 16 16 16 16 17 
0 8 16 17 16 17 17 
0 0 14 17 17 17 16 
+1

試試這個。 http://docs.oracle.com/javase/tutorial/java/data/numberformat.html –

+0

那麼呢?使用標籤('\ t')或計算轉換爲字符串後檢查雙精度長度所需的空格數。 –

回答

1
System.out.printf("%4d", doubleIntArray[x][y]); 

4代表打印號碼的最小空間。

該方法的其他選項的解釋here

2
System.out.print(doubleIntArray[x][y] + "\t"); 

\ t打印標籤

但在這種情況下,將打印這樣的事情(但我想這就是好你)

0 0 0 0 0 0 0 
0 0 0 12 17 9 7 
0 0 17 17 17 17 16 
0 10 16 17 17 16 17 
0 0 16 16 16 16 17 
0 8 16 17 16 17 17 
0 0 14 17 17 17 16 
+0

這將很大程度上取決於OP如何爲其消費格式化數字。例如,因爲它尋找基本的顯示目的,這是一個可能的解決方案。請注意,如果您想要一個體面的演示文稿格式,最好使用'String#format'代替。 –

2

你可以..嘗試使用java.text.NumberFormat並顯示與固定寬度的每個號碼的圖案。然後將它們連接起來全部在一條線上...

2

或者使用String.format("%4d", myinteger)讓每個整數佔用4個字符,並應妥善正確的填充。

1

您有2個選項。首先,您可以在第二個for循環中使用\t。但我認爲你可以添加\t和空白字符以避免惡化。也可以提供這個,在第二個for循環中加入if-else結構。我的意思是

if(doubleIntArray[y].length<10){ 
    System.out.print(doubleIntArray[x][y] + "\t "); 
    //Tab+two whitespace. 
} else { 
    if(doubleIntArray[y].length>10) { 
     System.out.print(doubleIntArray[x][y] + "\t "); 
     //Tab+one whitespace 
    } else { 
     System.out.print(doubleIntArray[x][y] + "\t"); 
     //Tab+NO whitespace 
    } 
} 

邏輯是,我認爲。對不起,我的答案設計。我現在在公車上,不能順利寫字。如果我再次爲此感到遺憾。

0
public static void printDoubleIntArray(int[][] doubleIntArray) { 
for (int x = 0; x < doubleIntArray.length; x++) { 
System.out.println(); 
for (int y = 0; y < doubleIntArray[x].length; y++) { 
System.out.print(doubleIntArray[x][y],"\t"); 
    } 
System.out.print("\n"); 
} 
}