Как я могу напечатать двумерный массив символов в Java, чтобы создать сетку 20x20?

Я пытаюсь напечатать двумерный массив периодов в Java, однако не могу правильно отформатировать. Я могу создать аналогичный макет, НЕ используя 2D-массив. Однако мне нужно будет работать с 2D-массивом, чтобы закончить проект. Я пытался использовать Arrays.deepToString();, но не нашел его полезным.

Моя цель - иметь сетку периодов 20x20, подобную этой: ** Без S и X Как я могу напечатать двумерный массив символов в Java, чтобы создать сетку 20x20?

Мой способ без использования 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));
}

Ваш вопрос не ясен, пожалуйста, не могли бы вы уточнить, что вам нужно на выходе?

Shridutt Kothari 23.03.2022 06:01
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
48
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы должны распечатать свой 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("]]", ""));
    }
}

Ваше объяснение великолепно. Мне действительно очень помогло

user4544523 23.03.2022 07:20

Большое спасибо. Это именно то, что я пытался сделать!

RaymondNoodle 23.03.2022 16:50

@RaymondNoodle Рад помочь

Faeem azaz Bhanej 23.03.2022 16:50

Соединить вдвоем?...

  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();
    }
  }

Другие вопросы по теме