Я пытаюсь напечатать двумерный массив периодов в Java, однако не могу правильно отформатировать. Я могу создать аналогичный макет, НЕ используя 2D-массив. Однако мне нужно будет работать с 2D-массивом, чтобы закончить проект. Я пытался использовать Arrays.deepToString();
, но не нашел его полезным.
Моя цель - иметь сетку периодов 20x20, подобную этой:
** Без S и X
Мой способ без использования 2d-массива:
for (int i = 20; i >= 1; i--) {
for(int j = 1; j <= 20; j++) {
System.out.print(" .");
}
System.out.print("\n");
}
Моя попытка использовать 2d-массив:
final int rows = 20;
final int columns = 20;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
board[i][j] = ".";
}
System.out.println(Arrays.deepToString(board));
}
Вы должны распечатать свой 2D-массив за пределами outer loop
, но вы печатаете этот результат 2D-массива за пределами inner loop
. После этого вам нужно удалить bracket
и comma
с помощью метода java заменять().
Вот измененный код:
import java.util.*;
public class Main
{
public static void main(String[] args) {
final int rows = 20;
final int columns = 20;
String board[][] = new String[rows][columns];
// OUTER LOOP
for (int i = 0; i < rows; i++) {
// INNER LOOP
for (int j = 0; j < columns; j++) {
board[i][j] = ".";
}
}
System.out.print(Arrays.deepToString(board).replace("],", "\n")
.replace(",", "")
.replace("[[", " ")
.replace("[", "")
.replace("]]", ""));
}
}
Ваше объяснение великолепно. Мне действительно очень помогло
Большое спасибо. Это именно то, что я пытался сделать!
@RaymondNoodle Рад помочь
Соединить вдвоем?...
public static void main(String[] args) {
final int rows = 20;
final int columns = 20;
String board[][] = new String[rows][columns];
for (int row = 0; row < board.length; row++) {
for (int col = 0; col < board[row].length; col++) {
board[row][col] = ".";
}
}
display2Darray(board);
}
public static void display2Darray(String[][] arr) {
for (int row = 0; row < arr.length; row++) {
for (int col = 0; col < arr[row].length; col++) {
System.out.print(arr[row][col]);
}
System.out.println();
}
}
Ваш вопрос не ясен, пожалуйста, не могли бы вы уточнить, что вам нужно на выходе?