Я действительно искал ответ по всему Интернету, прежде чем приехать сюда, и я думаю, что ответ будет как-то связан с операторами try / catch, но даже после просмотра пары учебников по этой теме я не уверен вкак это реализовать.
В любом случае, я пытаюсь сделать простую вещь в своем приложении для напоминаний новичка, которое я создаю (я изучаю Java как мой первый язык уже около 3 месяцев).
Я хочу, чтобы программа проверяла ввод пользователя, и, если это определенная буква («R»), я хочу, чтобы программа делала определенные вещи.Если это целое число от 0 до 100, то я хочу заняться другими делами.И если это ни один из них, то я хочу, чтобы оператор "else" работал.
Проблема, из-за которой я не могу заставить работать оператор "else", когда я получаю ошибку NumberFormatException.Например, если я ввожу какую-то другую букву, например, "d", я получаю следующее сообщение об ошибке:
Исключение в потоке "main" java.lang.NumberFormatException: Для входной строки: "d" в java.lang.NumberFormatException.forInputString (NumberFormatException.java:65) в java.lang.Integer.parseInt (Integer.java:580) в java.lang.Integer.parseInt (Integer.java:615) в mash.Dialogue.startDialogue (диалог диалога).java: 51) в mash.Dialogue.newRem (Dialogue.java:27) в mash.Dialogue.startDialogue (Dialogue.java:38) в mash.Dialogue.start (Dialogue.java:13) в mash.Main.main(Main.java:9)
Вот код (прошу прощения за любые проблемы с читабельностью, я впервые показываю свой код кому-то).Вам не нужно читать инструкцию else if, поскольку проблема, похоже, не зависит от текста внутри этого утверждения.
Я был бы очень признателен, если бы кто-нибудь мог указать мне, что не так с кодом и какЯ бы сделал то, что хотел.Мы будем признательны за новшество, подходящее для новичков.
Заранее спасибо!
String secondLetter = mash.nextLine();
if(secondLetter.equals("r") || secondLetter.equals("R")) { //if the user enters R - create a new Reminder
newRem();
}
else if((Integer.parseInt(secondLetter) >= 0) && (Integer.parseInt(secondLetter) < maximum)) { //if the user enters number - check task list
tasks.remText(Integer.parseInt(secondLetter));
System.out.println("Enter 'D' to set the reminder as Done. Or enter 'T' to return to the list");
String v = mash.nextLine();
System.out.println(v);
if(v.equals("d")|| v.equals("D")) { //if user enters D - set the reminder as done
tasks.setDone(Integer.parseInt(secondLetter));
System.out.println("The reminder is now added to 'Done' list");
}
else if(v.equals("t")|| v.equals("T")) { //if user enters T - return to the list of reminders
tasks.display();
}
else {
System.out.println("Please enter the correct symbol");
}
}
else {
System.out.println("Enter the correct symbol");
}