Java 如何检查输入是否为整数

Java 如何检查输入是否为整数,java,java.util.scanner,Java,Java.util.scanner,我正在制作一个程序,该程序将询问用户的int输入,并检查用户输入是否为整数。如果没有,程序会要求输入一个平铺,它会得到一个整数 Scanner in = new Scanner(System.in); System.out.println("Eneter a nuber here:"); int num; if (in.hasNextInt()){ num =in.nextInt(); if(num % 2 == 0){

我正在制作一个程序,该程序将询问用户的int输入,并检查用户输入是否为整数。如果没有,程序会要求输入一个平铺,它会得到一个整数

 Scanner in = new Scanner(System.in);
    System.out.println("Eneter a nuber here:");
    int num;
    if (in.hasNextInt()){
        num =in.nextInt();
        if(num % 2 == 0){
            System.out.print("this is even!!");
        } else{
            System.out.println("this is odd!!");
        }
    } else {
        System.out.print("pleas enter an integer only!!!");
        num = in.nextInt();
        if(num % 2 == 0){
            System.out.print("this is even second check!!");
        } else{
            System.out.println("this is odd second check!!");
        }
    }

这是代码,但我有一些错误。当输入不是整数时会出现错误。请对此提供帮助,提前感谢

可能是一种愚蠢的方法,但这可以解决您的问题:

        String x;
        x = "5";//or get it from user
        int y;
        try{
        y = Integer.parseInt(x);
        System.out.println("INTEGER");
        }catch(NumberFormatException ex){
            System.out.println("NOT INTEGER");
        }
编辑:

程序将尝试将字符串转换为整数。如果它是整数,它将成功,否则它将获得异常并被捕获

另一种方法是检查ASCII

要继续直到遇到整数,请执行以下操作:

String x;
        Scanner sc = new Scanner(System.in);
        boolean notOk;
        do{
            x = sc.next();
            notOk = check(x);
        }while(notOk);
        System.out.println("Integer found");
    }
    private static boolean check(String x){
        int y;
        try{
            y = Integer.parseInt(x);
            return false;
            }catch(NumberFormatException ex){
                return true;
            }
    }

必须将用户输入读取为字符串。然后,在try/catch块中,对integer(integer.parseInt())进行强制转换,如果引发异常的原因不是数字。

请尝试下面的代码,它将仅在有效整数时结束,否则它将继续要求整数,我想您正在寻找相同的整数

public void checkInt() {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Eneter a nuber here:");
    try {
        int num = scanner.nextInt();
        if (num % 2 == 0) {
            System.out.print("this is even!!");
        } else {
            System.out.println("this is odd!!");
        }
    } catch (InputMismatchException e) {
        System.out.println("pleas enter an integer only!!!");
        checkInt();
    }
}

重复问题:是的,非常感谢你们的帮助,但我怎样才能让catch部分中的无限循环从中获取输入的整数???由于其他原因,操作面临错误。他/她回答时已经使用了此代码!A-1。
import java.util.Scanner;
 public class Test {
     public static void main(String args[] ) throws Exception {

     Scanner sc=new Scanner(System.in);

     if(sc.hasNextInt())
         System.out.println("Input is of int type");

     else
         System.out.println("This is something else");
     }
}