Я там, у меня проблемы с форматированием этого 2d массива. Я думал о том, как делать system.out.printf, но каждый раз, когда я делаю что-то вроде, возможно,% 2f или что-то вроде этого, он не работает.
public static void main(String[] args) {
int t,i;
int[][] table = new int[5][6];
for (t = 0; t < 5; t++) {
for (i=0;i < 6; i++) {
table[t][i] = (t*6)+i+1;
System.out.print(table[t][i] + " ");
}
System.out.println();
}
}
}
This is the output:
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
Вывод должен иметь правильное выравнивание пространств следующим образом: http://prntscr.com/6kn2pq
Используйте format
:
System.out.format("%4d", table[t][i]);
Результат выглядит следующим образом:
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
Или, если вы предпочитаете выравнивать числа слева:
System.out.format("%-4d", table[t][i]);
Что приводит к этому результату:
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
Взгляните на PrintStream#printf
и String#format
и Formatted Strings
В принципе, для каждой строки каждый столбец должен быть сформирован, чтобы иметь как минимум два пробела...
System.printf("%2d", table[t][i])
Следующая проблема исходит из того факта, что для последующих столбцов требуется дополнительное пространство между ними;)
System.printf("%2d%4s", table[t][i], "")
Что может привести к чему-то вроде...
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
...printf("%2d ",...
не так сложно для чтения (в конечном итоге легче, если будет больше полей).
%4s
легче читать в коде, но это я
Вы должны использовать printf
вместо print
System.out.printf("%3d", table[t][i]);
\t
если числа не слишком велики.