Java中如何处理用户输入非数字的情况?
时间: 2024-09-24 18:04:31 浏览: 85
在Java中,当使用`Scanner`从控制台获取用户输入时,如果用户输入的不是预期的数据类型(如整数),默认情况下会抛出`InputMismatchException`异常。为了处理这种情况,你可以在尝试读取之前检查输入,并使用`hasNextInt()`、`hasNextDouble()`等方法来确认。
下面是一个示例,演示了如何捕获并处理这种异常:
```java
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入一个整数:");
try {
int input = scanner.nextInt();
// 这里可以使用输入的整数进行操作
break; // 输入有效,跳出循环
} catch (InputMismatchException e) {
System.out.println("输入错误,请输入一个整数。");
scanner.next(); // 清除无效输入,准备下一次输入
}
}
// 关闭Scanner
scanner.close();
}
}
```
在这个示例中,如果用户输入的是非数字字符,程序会提示错误并继续等待新的输入,直到输入正确的整数为止。
阅读全文