Проблема с выходом индекса за пределы матрицы StringBuilderJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблема с выходом индекса за пределы матрицы StringBuilder

Сообщение Anonymous »

Я создаю программу, позволяющую научиться управлять текстовыми строками и файлами на Java, где пользователь будет вводить университетские модули в определенные блоки времени. Это все еще прототип, и сейчас я пытаюсь заполнить массив StringBuilders базовой структурой, чтобы затем изменить его с помощью данных, которые вводит пользователь.
Мой метод был чтобы создать пустой массив StringBuilder размером 6X10, заполните его пустыми строками, а затем «заполните» его массивом строк с базовой структурой:

Код: Выделить всё

import java.util.Arrays;

public class Main {
public static void main(String[] args) {

StringBuilder[][] baseStructure = new StringBuilder[6][10];
for(int i = 0; i < 6; i++){
for(int j = 0; j < 10; j++){
baseStructure[i][j] = new StringBuilder();
}
}

String[][] baseStructure2 = {
{"HORA", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes"},
{"  8:30 - 9:30", "1", "2", "3", "4", "5"},
{" 9:40 - 10:40", "1", "2", "3", "4", "5"},
{"10:50 - 11:50", "1", "2", "3", "4", "5"},
{"12:00 - 13:00", "1", "2", "3", "4", "5"},
{"13:10 - 14:10", "1", "2", "3", "4", "5"},
{"14:20 - 15:20", "1", "2", "3", "4", "5"},
{"15:30 - 16:30", "1", "2", "3", "4", "5"},
{"16:40 - 17:40", "1", "2", "3", "4", "5"},
{"17:50 - 18:50", "1", "2", "3", "4", "5"}
};

for(int m = 0; m < 6; m++){
for(int n = 0; n < 10; n++){
printMatrix(baseStructure);
baseStructure[m][n] = new StringBuilder(baseStructure2[m][n]);
}
}

}

public static void printMatrix(StringBuilder[][] strMatrix){
for (StringBuilder[] strings : strMatrix) {
System.out.println(Arrays.deepToString(strings));
}
}
Однако, несмотря на то, что мои циклы имеют одинаковые значения размеров, при запуске программы я получаю ошибки доступа к индексу, выходящие за пределы диапазона 6.
ЧТО я ПОПЫТАЛОСЬ:
Я пытался заполнить матрицу StringBuilder, «копируя» данные из матрицы String, печатая их по мере выполнения цикла, чтобы увидеть, как они растут с каждой итерацией.
Программа работает до тех пор, пока не дойдет до конца первая строка, где успевает скопировать данные до пятницы, а потом обрывается:

Код: Выделить всё

[HORA, Lunes, Martes, Miercoles, Jueves, Viernes, , , , ]
[, , , , , , , , , ]
[, , , , , , , , , ]
[, , , , , , , , , ]
[, , , , , , , , , ]
[, , , , , , , , , ]

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 6 out of bounds for length 6 at Main.main(Main.java:44)
Я могу сказать, что что-то не так, потому что в первой строке НЕ должно быть четырех лишних пустых мест, но я не уверен, что является причиной этого.
(Разработано на Java 23.0.1 в IntelliJ IDEA Community Edition 2024.3.1.1)

Подробнее здесь: https://stackoverflow.com/questions/793 ... der-matrix
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»