显示java中无效输入的错误

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

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

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

sqougxex1#

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

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

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

Scanner takeInteger = new Scanner(System.in);
System.out.println("Enter a number");
if(!takeInteger.hasNextInt()) {
    System.out.println("Invalid Input: " + takeInteger.next());
}
else {
    int enteredNumber = takeInteger.nextInt();
    // ... proceed with the input
}
9avjhtql

9avjhtql2#

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

import java.util.*; 

    Scanner takeInteger = new Scanner(System.in);
    System.out.println("Enter a number");
    try{
       int enteredNumber = takeInteger.nextInt();
    }
    catch(InputMismatchException e) {
        System.out.println("Enter a valid input");
    }
hpxqektj

hpxqektj3#

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

Scanner takeInteger = new Scanner(System.in);
        System.out.println("Enter a number");
        String input = takeInteger.next();
        int enteredNumber;
        try
        {
            enteredNumber = Integer.parseInt(input); // Input is a number
        }
        catch(NumberFormatException ex)
        {
            System.out.println("Wrong Input!"); // Invalid input
        }
m3eecexj

m3eecexj4#

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

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter a number");
        String line = sc.nextLine();

        try {
            int enteredNumber = Integer.parseInt(line);
            System.out.println("You have entered: " + enteredNumber);
        } catch (Exception e) {
            System.out.println("Invalid Input");
        }
    }
}

结果为一个数字:

Enter a number
12
You have entered: 12

结果a文本:

Enter a number
abcd
Invalid Input
cotxawn7

cotxawn75#

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

public class Main {
     public static void main(String[] args) {
         Scanner takeInteger = new Scanner(System.in);
         System.out.println("Enter a number");
         try {
             int enteredNumber = takeInteger.nextInt();
         }
         catch (Exception e) {
             System.out.println("Invalid Input");
         }
     }
}

相关问题