显示java中无效输入的错误

yv5phkfx  于 2021-08-25  发布在  Java
关注(0)|答案(5)|浏览(458)

我已经编写了一个java程序,它接收用户的输入,并检查用户是否输入了正确的内容。我已经从scanner类获取了输入。如果用户输入无效字符(如字符串),我想显示“无效输入”。

  1. public class Main {
  2. public static void main(String[] args) {
  3. Scanner takeInteger = new Scanner(System.in);
  4. System.out.println("Enter a number");
  5. int enteredNumber = takeInteger.nextInt();
  6. }
  7. }
sqougxex

sqougxex1#

只要问问 Scanner 下一个输入是否为有效的int值,例如。

  1. Scanner takeInteger = new Scanner(System.in);
  2. System.out.println("Enter a number");
  3. while(!takeInteger.hasNextInt()) {
  4. System.out.println("Invalid Input: " + takeInteger.next());
  5. }
  6. int enteredNumber = takeInteger.nextInt();

这将重试该操作,直到用户输入一个数字。如果您只需要一次尝试,请使用以下命令

  1. Scanner takeInteger = new Scanner(System.in);
  2. System.out.println("Enter a number");
  3. if(!takeInteger.hasNextInt()) {
  4. System.out.println("Invalid Input: " + takeInteger.next());
  5. }
  6. else {
  7. int enteredNumber = takeInteger.nextInt();
  8. // ... proceed with the input
  9. }
展开查看全部
9avjhtql

9avjhtql2#

您将得到一个异常,即 InputMismatchException 当传递无效输入时(即除整数值外),可以使用try-catch块保存异常并通知用户无效输入。试挡,接住挡

  1. import java.util.*;
  2. Scanner takeInteger = new Scanner(System.in);
  3. System.out.println("Enter a number");
  4. try{
  5. int enteredNumber = takeInteger.nextInt();
  6. }
  7. catch(InputMismatchException e) {
  8. System.out.println("Enter a valid input");
  9. }
hpxqektj

hpxqektj3#

您可以添加一个 try-catch 在您的程序中阻塞以检查用户的输入是否为数字。

  1. Scanner takeInteger = new Scanner(System.in);
  2. System.out.println("Enter a number");
  3. String input = takeInteger.next();
  4. int enteredNumber;
  5. try
  6. {
  7. enteredNumber = Integer.parseInt(input); // Input is a number
  8. }
  9. catch(NumberFormatException ex)
  10. {
  11. System.out.println("Wrong Input!"); // Invalid input
  12. }
m3eecexj

m3eecexj4#

你需要打电话给警察 .nextLine 方法,然后解析为所需类型。
例子:

  1. import java.util.Scanner;
  2. public class Main {
  3. public static void main(String[] args) {
  4. Scanner sc = new Scanner(System.in);
  5. System.out.println("Enter a number");
  6. String line = sc.nextLine();
  7. try {
  8. int enteredNumber = Integer.parseInt(line);
  9. System.out.println("You have entered: " + enteredNumber);
  10. } catch (Exception e) {
  11. System.out.println("Invalid Input");
  12. }
  13. }
  14. }

结果为一个数字:

  1. Enter a number
  2. 12
  3. You have entered: 12

结果a文本:

  1. Enter a number
  2. abcd
  3. Invalid Input
展开查看全部
cotxawn7

cotxawn75#

您可以使用异常处理来处理相同的异常。

  1. public class Main {
  2. public static void main(String[] args) {
  3. Scanner takeInteger = new Scanner(System.in);
  4. System.out.println("Enter a number");
  5. try {
  6. int enteredNumber = takeInteger.nextInt();
  7. }
  8. catch (Exception e) {
  9. System.out.println("Invalid Input");
  10. }
  11. }
  12. }

相关问题