在来到这里之前,我确实在整个互联网上搜索了答案,我认为答案与 try/catch 语句有关,但即使在看了几个关于该主题的教程之后,我也不确定如何实现那。
无论如何,我正在尝试在我正在制作的新手提醒应用程序中做一件简单的事情(我正在学习 Java 作为我的第一语言大约 3 个月)。
我希望程序检查用户的输入,如果它是某个字母(“R”),我希望程序执行某些操作。如果它是从 0 到 100 的整数,那么我想做其他的事情。如果它们都不是,那么我希望“else”语句起作用。
当我收到 NumberFormatException 错误时,我无法让“else”语句工作的问题。例如,如果我输入其他字母,即“d” - 我会收到以下错误消息:
线程“主”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(Dialogue.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();
}
米琪卡哇伊
千巷猫影
相关分类