我试图让用户输入一个整数,该整数将用于数学方程式中。如果用户输入了除整数以外的任何内容,则必须丢弃该输入,并向用户发出警告。
简而言之,我需要一种方法来测试输入是否为整数,如果不是,则显示警告并在输入产生错误之前停止程序。
下面是我的代码片段;我尝试使用.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提供
答案 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));
}
}