2015-05-26 34 views
0

我有一個x數組存儲在java中的二維數組中,我想以一種很好的格式化方式向用戶輸出。有沒有一種簡單的方法來在java中做到這一點?在java中顯示一個二維數組

這裏是我建我的板:

board = new int[TotRow][TotCol]; 
+1

請把一些代碼,說明你的情況 –

回答

0
for (int i = 0; i < x; i++) { 
    for (int j = 0; j < y; j++) { 
     System.out.print(board[i][j] + "\t"); 
    } 
    System.out.println(); 
} 
+2

內環'System.out.print'代替 –

+0

這(改變第一'println'到'print'後)工作,但我傾向於避免使用因爲你對他們的工作方式或者他們是否做任何事情沒有任何控制權。 – ajb

+0

你能補充一些解釋嗎? –

0

可以打印boardtwo dimensional陣列這樣

for (int i = 0; i < board.length; i++) { 
    for (int j = 0; j < board[i].length; j++) { 
     System.out.print(board[i][j] + "\t"); 
    } 
    System.out.println(); 
} 
1

如果你想被正確填充的數量以及使用String.format()

for (int i = 0; i < TotRow; i++) { 
    for (int j = 0; j < TotCol; j++) { 
     System.out.print(String.format("%3d", board[i][j]) + "\t"); 
    } 
    System.out.println(); 
} 
我已經使用 %3d格式化

通知,您可以使用格式要求你

0

你可能會喜歡的一條線,因爲這很容易,Arrays.deepToString(Object[])的Javadoc說(部分),

這方法用於將多維數組轉換爲字符串。

System.out.println(Arrays.deepToString(board)); 
0

因爲我不喜歡依靠標籤,我想提一提,不依賴於他們的一些方法。

如果你知道所有在表中的數字是,比如說爲非負數,4個位數或更少,就可以在類似尼廷的回答方式使用String.format

for (int i = 0; i < TotRow; i++) { 
    for (int j = 0; j < TotCol; j++) { 
     System.out.print(String.format("%4d ", board[i][j])); 
    } 
    System.out.println(); 
} 

%4d指使用4個字符的寬度格式化數字,如果打印的數量少於4個字符,則在左側填充空白。因此,如果沒有任何5位數或更長的數字,則每個print將只打印5個字符 - 數字的4個字符的字段以及數字後的空格。只要沒有一個數字太大,這將使所有內容排成一列。如果您確實收到的數字超過4個字符,格式將會變得混亂。

這裏有一個方法來調整列寬,這樣它只是大到足以容納表中的所有的值,如果有負數正常工作:

int maxWidth = 0; 
for (int i = 0; i < TotRow; i++) { 
    for (int j = 0; j < TotCol; j++) { 
     maxWidth = Math.max(maxWidth, Integer.toString(board[i][j]).length()); 
    } 
} 
String format = "%" + maxWidth + "d "; 
for (int i = 0; i < TotRow; i++) { 
    for (int j = 0; j < TotCol; j++) { 
     System.out.print(String.format(format, board[i][j])); 
    } 
    System.out.println(); 
} 

注:沒有測試

0

你基本上只是使用嵌套循環。

for (int i = 0; i < board.length; i++) { 
    for (int j = 0; j < board[i].length; j++) { 
     System.out.print(board[i][j] + " "); 
    } 
    System.out.println(); 
}