Как сохранить содержимое строкового массива в двухмерный символьный массив? - PullRequest
0 голосов
/ 22 февраля 2019

следующий код запрашивает размер сетки, а затем принимает значения ввода с клавиатуры и сохраняет содержимое в "str" ​​. Теперь я хочу сохранить содержимое "str" ​​в двумерном массиве символовс именем char [] [] board .Как я могу это сделать?Пожалуйста, будьте терпеливы, я новичок в кодировании.

Scanner s = new Scanner(System.in);

System.out.println("Enter grid size");

int t = s.nextInt(); // read number of elements
s.nextLine(); // consume new line
System.out.println("Enter the values");
int d = s.nextInt(); // read number of elements
s.nextLine();
String str[] = new String[t];
for(int k=0;k<t;k++) {
         str[k]=s.nextLine();
}

Пример вывода:

Enter grid size
3
Enter the values
123
234
456

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Убедитесь, что длина всех введенных строк одинакова, иначе это вызовет ошибку.При создании 2D-массива мы должны указать строки и столбцы.Чтобы получить размер столбца, мы пытаемся найти длину ввода первой строки.

    Scanner in = new Scanner(System.in) ;
    System.out.println("Enter grid size") ;

    int size = in.nextInt() ;  // size is the total number of incoming strings

    String str = in.next() ;
    int col = str.length()  ; // getting the length of the fisrt string to get column size for the grid

    char grid[][] = new char[size][col] ;
    grid[0] = str.toCharArray() ;  

    for (int i = 1 ; i < size ; i++)
    {
        str = in.next() ; 
        grid[i] = str.toCharArray() ; 
    }

Если вам просто нужно прочитать или пройти (НЕ редактировать / изменить) символы строк, вы можете использовать метод str.charAt(index).Вам не нужно создавать двумерный массив char [] [] Надеюсь, это поможет!

0 голосов
/ 22 февраля 2019

Что вам нужно, это "вероятно":

// so far so good...
// not: String str[] = new String[t];, but:
char [][] str = new char[t][];
for(int k=0;k<t;k++) {
     str[k] = s.nextLine().toCharArray();
}

Итак:

  1. Измените тип str на char[t][].
  2. Установите для каждого str[k] значение String.toCharArray(); (где String равно s.nextLine()).

См. Javadoc: String.toCharArray()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...