gpt4 book ai didi

java - 如何检查整数或字符串,如果没有则再次询问 [Java]

转载 作者:行者123 更新时间:2023-12-01 19:13:01 26 4
gpt4 key购买 nike

互联网上有很多关于此问题的帖子,但我无法弄清楚其中任何一个。

作为 Java 入门类(class)的作业,我们的任务是制作一些不同的程序,然后我们将它们返还给我们,并告诉我们要让它们防白痴。

例如,我们必须使用一个程序来确定任意一年中的随机一天是一周中的哪一天(即 2013 年 1 月 1 日是星期二)

我提示三件事,日,年和月,我想这样做,以便如果日包含字母,它会发回无效并再次提示。

现在我已经设置了,如果 day 是小于 1 或大于 31 的整数,它会再次询问,所以我对范围没有问题,只是 NFE 有问题。

我听说我应该使用

 Try
{
//...
}
catch{NumberFormatExcept nFE}

但我不知道如何使用它来重新提示我要查找的内容

这是迄今为止我的代码片段

             System.out.print("Enter the day of the month (1-31): ");
int d = UserInput.nextInt();

do
{
if(d < 1 || d > 31)
{
System.out.print("That day is invalid, please enter a day between 1 and 31");
d = UserInput.nextInt();
}
}while(d < 1 || d > 31);

我尝试将 d 设为字符串并使用 Integer.parseInt();但这只会将 a 解析为 1,我想要类似 if d.hasNextInt(); 的东西继续,但如果有NextString()则重新提示。

又名

    String d;
d = UserInput.nextLine();
int dVar = Integer.parseInt(d);

我不能只是抛出异常,因为目标是不崩溃而只是再次提示。

最佳答案

考虑创建一个读取有效整数的方法。向此方法传递有效的整数范围。该方法将尝试读取该值一次并进行验证。如果方法失败,则返回null,如果通过则返回Integer。在 do-while 循环中调用此方法,直到获得非 null Integer

关于java - 如何检查整数或字符串,如果没有则再次询问 [Java],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7809938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com