2013-04-23 2 views
-1

Я хочу, чтобы отобразить значения матрицы так же, как матрицаОтображение данных матрицы

так же, как это

0 0 1 0 0 
0 1 1 1 1 
0 0 0 0 0 

Когда я делаю этот код, он появляется вертикально

for (int i = 0; i < mat.length; i++) 
       for (int j = 0; j < mat[i].length; j++) 
        System.out.println(mat[i][j]); 
+1

Что ваш вопрос? – TheMerovingian

+0

Проверьте мой код для редактирования – mpluse

ответ

3

System.out.println печатает линию и разрыв строки. Вы бы хотели использовать System.out.print, который только печатает данные.

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

Но теперь проблема заключается в том, что все данные в одной и той же строке печатается без пробела. Вы можете использовать System.out.print(mat[i][j] + " ");, но это немного неуклюжий. Наилучшим вариантом было бы использовать System.printf, чтобы форматирование текста, который будет напечатан на консоли:

for (int i = 0; i < mat.length; i++) { 
    for (int j = 0; j < mat[i].length; j++) { 
     //assuming mat[i][j] content is int... 
     System.out.printf("%3d", mat[i][j]); 
    } 
    System.out.println(); 
} 

Более подробную информацию о форматировании с System.out.printf: Format String syntax

+0

Да, спасибо! Я всегда использую 'println'. Вот почему... – mpluse

0

Попробуйте это: Использование print во внутреннем цикле, который будет печатать одну строку в одной строке. Используйте println во внешнем цикле, который будет разделять каждую строку.

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

* Попробуйте это *? По крайней мере, объясните **, почему ** это должно быть так. –

Смежные вопросы