Независимо от того, какой фрагмент кода я пытаюсь найти в Интернете (в основном из Stack Exchange/Overflow), я не могу понять, как преобразовать (или «назначить») элементов одномерного массива в двумерный массив.Преобразование массива Java 1D в 2D-массив
String str = in.next(); // Read the incoming text file and store it as a string
char[] oneDcharArray = str.toCharArray(); // Convert the string into a 1D array
maze = new char[numberOfRows][numberOfColumns]; // Assign row/column size to 2D array
int count = 0;
for (row = 0; row < numberOfRows; row++)
{
for (column = 0; column < numberOfColumns; column++)
{
// Convert 1D array into 2D array
maze[row][column] = oneDcharArray[count]; // Error: ArrayIndexOutOfBoundsException
count++;
}
}
Ответ на Jags ниже работает хорошо, но это не идеально. Он печатает:
Row 0: ++++++++++
Row 1: S+++++++++
Row 2: ++++++++++
Row 3: +++++ 0000 0000 0000 0000 0000
Row 0: ++++++++++
Row 1: OOOOOOOOOO
......
Как вы можете быть уверены, что у вас есть достаточное количество строк, чтобы держать записи массива 1D? – dave
Подсказка: используйте отладчик и следуйте «count» var и посмотрите, насколько он высок ... –
Каково значение 'numberOfRows',' numberOfColumns' и длина строки ввода? – Rehman