gpt4 book ai didi

Java.util.scanner 错误处理

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:49:55 24 4
gpt4 key购买 nike

我正在帮助一位 friend 解决 Java 问题。但是,我们遇到了障碍。我们正在使用 Java.Util.Scanner.nextInt() 从用户那里获取一个数字,不断询问用户是否提供其他任何东西。唯一的问题是,我们不知道如何进行错误处理。

我们尝试过的:

do {
int reloop = 0;
try {
number = nextInt();
} catch (Exception e) {
System.out.println ("Please enter a number!");
reloop ++;
}
} while(reloop != 0);

唯一的问题是,如果你输入的不是数字,这个循环就会不确定。

有什么帮助吗?

最佳答案

您可以使用 hasNextInt()验证如果您执行 nextInt()Scanner 是否会成功。如果您想跳过“垃圾”,也可以调用并丢弃 nextLine()

所以,像这样:

Scanner sc = new Scanner(System.in);
while (!sc.hasNextInt()) {
System.out.println("int, please!");
sc.nextLine();
}
int num = sc.nextInt();
System.out.println("Thank you! (" + num + ")");

另见:


你的代码的问题,除了不必要的冗长错误处理,因为你让 nextInt() 抛出一个 InputMismatchException 而不是检查 hasNextInt() ,是当它确实抛出异常时,您不会让 Scanner 越过有问题的输入!这就是为什么你会得到一个无限循环!

您可以调用并放弃 nextLine() 来解决这个问题,但更好的是,如果您使用上面介绍的无异常 hasNextInt() 预检查技术相反。

关于Java.util.scanner 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2696063/

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