使用 java.util.Scanner 进行整数验证
Integer validation using java.util.Scanner
我正在尝试验证用户是否只输入了一个整数。有没有另一种方法可以使验证更简单?
Scanner in = new Scanner(System.in);
System.out.print("Enter the amount of subjects that you need to get an average of: ");
int amount_of_subjects;
while (!in.hasNextInt())
{
// warning statement
System.out.println("Please Enter integer!");
in.nextLine();
}
amount_of_subjects = Integer.parseInt(in.nextLine());
取决于你想用你的程序做什么。
如果您只想将有效整数作为输入,您可以使用 nextInt()
函数
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
如果你想检查用户是否输入了一个有效的整数来响应你可以这样做:
public boolean isNumber(String string) {
try {
Integer.parseInt(string);
return true;
} catch (NumberFormatException e) {
return false;
}
}
看来你的解决方案已经很简单了。这是一个更简约的版本:
System.out.print("Please enter an integer: ");
while(!scan.hasNextInt()) scan.next();
int demoInt = scan.nextInt();
来自
尽管您只会减少代码行数,同时还可能降低可读性。
这是一种更简单的方法,它验证整数值 0 - 包含最大值并检查用户输入类型并最终显示结果或错误消息。它一遍又一遍地循环,直到收到良好的数据。
import java.util.Scanner;
import java.util.InputMismatchException;
class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int userVal = 0;
while(true){
try{
System.out.print("Enter a number: ");
userVal = scan.nextInt();
if ((userVal >= 0 && userVal <= Integer.MAX_VALUE)){
System.out.println(userVal);
break;
}
}
catch(InputMismatchException ex){
System.out.print("Invalid or out of range value ");
String s = scan.next();
}
}
}
}
我正在尝试验证用户是否只输入了一个整数。有没有另一种方法可以使验证更简单?
Scanner in = new Scanner(System.in);
System.out.print("Enter the amount of subjects that you need to get an average of: ");
int amount_of_subjects;
while (!in.hasNextInt())
{
// warning statement
System.out.println("Please Enter integer!");
in.nextLine();
}
amount_of_subjects = Integer.parseInt(in.nextLine());
取决于你想用你的程序做什么。
如果您只想将有效整数作为输入,您可以使用 nextInt()
函数
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
如果你想检查用户是否输入了一个有效的整数来响应你可以这样做:
public boolean isNumber(String string) {
try {
Integer.parseInt(string);
return true;
} catch (NumberFormatException e) {
return false;
}
}
看来你的解决方案已经很简单了。这是一个更简约的版本:
System.out.print("Please enter an integer: ");
while(!scan.hasNextInt()) scan.next();
int demoInt = scan.nextInt();
来自
尽管您只会减少代码行数,同时还可能降低可读性。
这是一种更简单的方法,它验证整数值 0 - 包含最大值并检查用户输入类型并最终显示结果或错误消息。它一遍又一遍地循环,直到收到良好的数据。
import java.util.Scanner;
import java.util.InputMismatchException;
class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int userVal = 0;
while(true){
try{
System.out.print("Enter a number: ");
userVal = scan.nextInt();
if ((userVal >= 0 && userVal <= Integer.MAX_VALUE)){
System.out.println(userVal);
break;
}
}
catch(InputMismatchException ex){
System.out.print("Invalid or out of range value ");
String s = scan.next();
}
}
}
}