如何测试输入是否为字符串(Java)

时间:2018-10-23 19:45:37

标签: java

我试图让用户输入一个整数,该整数将用于数学方程式中。如果用户输入了除整数以外的任何内容,则必须丢弃该输入,并向用户发出警告。 简而言之,我需要一种方法来测试输入是否为整数,如果不是,则显示警告并在输入产生错误之前停止程序。 下面是我的代码片段;我尝试使用.hasNextLine来测试输入是否为字符串,但是即使没有输入,它也将返回true并显示警告消息。

System.out.println("Input integer");
if(stdin.hasNextLine()) { //This line to test if the input is not integer
System.out.println("Input invalid, enter an integer"); //This line to give the user a warning that the input is invalid (not an integer)
System.exit(0); //This line to exit the program before the non-integer input messes with later code
}//close test

已解决使用.hasNextInt测试整数,如果为true,则继续,如果为false,则打印警告并结束程序。 -由shmosel提供

1 个答案:

答案 0 :(得分:0)

也许这不是最优化的解决方案,但是应该可以根据需要工作:

import java.util.Scanner;
import java.util.InputMismatchException;

public class MyClass {
    public static void main(String args[]) {
        System.out.println("Please type an integer:");

        Scanner scanner = new Scanner(System.in);
        Integer result = null;
        while(result == null && scanner.hasNext()) {
            if(scanner.hasNextInt()) {
                result = scanner.nextInt();
            } else {
                scanner.next();
                System.out.println("Wrong input, please type valid integer!");
            }
        }

        System.out.println("Thanks, you typed valid Integer " + String.valueOf(result));

    }
}