Я создаю программу, позволяющую научиться управлять текстовыми строками и файлами на Java, где пользователь будет вводить университетские модули в определенные блоки времени. Это все еще прототип, и сейчас я пытаюсь заполнить массив StringBuilders базовой структурой, чтобы затем изменить его с помощью данных, которые вводит пользователь.
Мой метод был чтобы создать пустой массив StringBuilder размером 6X10, заполните его пустыми строками, а затем «заполните» его массивом строк с базовой структурой:
Однако, несмотря на то, что мои циклы имеют одинаковые значения размеров, при запуске программы я получаю ошибки доступа к индексу, выходящие за пределы диапазона 6.
ЧТО я ПОПЫТАЛОСЬ:
Я пытался заполнить матрицу StringBuilder, «копируя» данные из матрицы String, печатая их по мере выполнения цикла, чтобы увидеть, как они растут с каждой итерацией.
Программа работает до тех пор, пока не дойдет до конца первая строка, где успевает скопировать данные до пятницы, а потом обрывается:
Я могу сказать, что что-то не так, потому что в первой строке НЕ должно быть четырех лишних пустых мест, но я не уверен, что является причиной этого.
(Разработано на Java 23.0.1 в IntelliJ IDEA Community Edition 2024.3.1.1)
Я создаю программу, позволяющую научиться управлять текстовыми строками и файлами на Java, где пользователь будет вводить университетские модули в определенные блоки времени. Это все еще прототип, и сейчас я пытаюсь заполнить массив StringBuilders базовой структурой, чтобы затем изменить его с помощью данных, которые вводит пользователь. Мой метод был чтобы создать пустой массив StringBuilder размером 6X10, заполните его пустыми строками, а затем «заполните» его массивом строк с базовой структурой: [code]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(); } }
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)); } } [/code] Однако, несмотря на то, что мои циклы имеют одинаковые значения размеров, при запуске программы я получаю ошибки доступа к индексу, выходящие за пределы диапазона 6. ЧТО я ПОПЫТАЛОСЬ: Я пытался заполнить матрицу StringBuilder, «копируя» данные из матрицы String, печатая их по мере выполнения цикла, чтобы увидеть, как они растут с каждой итерацией. Программа работает до тех пор, пока не дойдет до конца первая строка, где успевает скопировать данные до пятницы, а потом обрывается: [code][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) [/code] Я могу сказать, что что-то не так, потому что в первой строке НЕ должно быть четырех лишних пустых мест, но я не уверен, что является причиной этого. (Разработано на Java 23.0.1 в IntelliJ IDEA Community Edition 2024.3.1.1)