В этой программе у этого пользователя будет возможность генерировать собственный поиск слов. В начале программы пользователю будет показано меню с инструкциями, в котором он может выбрать один из следующих вариантов: 1. Создайте поиск по слову 2. Распечатайте поиск слова. 3. Просмотрите решения для поиска слов. 4. Выйдите из программы.
При выборе создания поиска по словам пользователю будет предложено ввести слова по своему выбору, строка за строкой. Эти слова будут храниться в одномерном массиве. Пользователь должен будет ввести минимум 20 слов, максимум 260. В каждом пакете из 20 слов пользователя спрашивают, хотят ли они добавить больше слов. Если они этого не сделают, программа сразу перейдет к преобразованию одномерного массива в список массивов, а затем создаст поиск слова. Если пользователь решит добавить больше слов, программа предложит ему / ей ввести больше слов, пока они не достигнут максимального количества слов. Варианты 2 и 3 просто включают несколько циклов и использование нескольких методов для отображения организованного вывода пользователю.
Программа не позволяет вводить слова в массив слов. При запуске программы пользователь вводит «1» для поиска слов, затем программа инструктирует пользователя вводить слова построчно, но не позволяет пользователю ничего вводить. На экране консоли написано «Word Search created», а прямо под ним - «Invalid input, try again». Я создал список массивов сразу после знакомства с программой: List<String> words = new ArrayList<>();
Я попытался выяснить, где я здесь ошибся, и даже попытался найти это, но ничто не решило мою проблему.
do {
WordArray wordArr = new WordArray();
showOptions();
choice = input.nextInt(); // Get choice input
if (choice == 1) {
System.out.println("Enter words of your choice line-by-line. You can enter a maximum of 260 words (i.e., 10 words per letter)");
System.out.println("");
// This for loop will loop around with it`s body the user decides they have added enough words and wish to proceed
for (int i = 0; i < words.size(); i++) {
words.add(input.nextLine());
if ((i + 1) % 20 == 0 && i != 0) {
// For every batch of 20 words entered, the program will ask the user this...
System.out.print("Do you want to keep adding words? Enter Y/N: ");
String answer = input.next().toUpperCase();
if (answer.equals("Y")) {
words.add(input.nextLine());
} if (answer.equals("N")) {
break;
}//end of inner if
}//end of outer if
}//end of for loop
createWordSearch(words); Это длина слова Array List
в начале это 0?
Ну да, индекс начинается с 0, так что да
хорошо, тогда этот for (int i = 0; i < words.size(); i++) такой же, как for (int i = 0; i < 0; i++), это означает, что ваш цикл for никогда не выполнялся
У меня такая же проблема.
Позвольте нам продолжить обсуждение в чате.




из обсуждения этот чат, ошибка была в цикле for
for (int i = 0; i < words.size(); i++)
были words.size() равны 0, поэтому исправить это вы должны использовать
for (int i = 0; i <= 260; i++)
изменение words.size() на 260, где 260 - максимальное количество слов, которое может ввести пользователь.
Спасибо! Я написал вам в нашем чате.
@YashviShah окей, я тебе ответил. Мне нужно больше контекста, чтобы дать вам решение
Хорошо, ваш ответ действительно помог мне, и я исправил это в других областях моего кода, но я все еще сталкиваюсь с исключениями ArrayOutOfBound ... проверьте обсуждение в чате
в чем ценность
words.size()?