让用户在扫描器中只输入整数 Java
Make user only input integer in scanner Java
我这里有一些问题。
我希望用户只能输入整数。我尝试了很多代码,但仍然无法正常工作。顺便说一句,这是我的代码
import java.util.Scanner;
public class test {
public static void main (String []args){
Scanner scan = new Scanner(System.in);
int number = scan.nextInt();
}
}
出错时,消息显示为
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at test.main(test.java:6)
请帮助我(初级程序员);
试试这个:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.print("Enter a number -> ");
String input = sc.next();
int intInputValue = 0;
try {
intInputValue = Integer.parseInt(input);
break;
} catch (NumberFormatException ne) {
System.out.println("This is not a number");
}
}
}
当用户输入一个整数输入值时,该程序将结束。
输出
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while (!scan.hasNextInt()) {
System.out.println("Input is not a number.");
scan.nextLine();
}
int number = scan.nextInt();
}
此代码将检查输入是否为整数,如果是则继续。
只有当用户没有输入 integer.For 这种情况时才会出现这种错误,您可以创建一个 try-catch
块来捕获异常,如下所示:
String input = sc.next();
int number = 0;
try {
number = Integer.valueOf(input);
} catch (NumberFormatException ne) {
System.out.println("Invalid input!");
}
为了进一步优化解决方案,将这一切放在一个循环中,并在 try-block
中跳出,如果用户输入了错误的数字,则继续轮询输入。
我这里有一些问题。 我希望用户只能输入整数。我尝试了很多代码,但仍然无法正常工作。顺便说一句,这是我的代码
import java.util.Scanner;
public class test {
public static void main (String []args){
Scanner scan = new Scanner(System.in);
int number = scan.nextInt();
}
}
出错时,消息显示为
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at test.main(test.java:6)
请帮助我(初级程序员);
试试这个:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.print("Enter a number -> ");
String input = sc.next();
int intInputValue = 0;
try {
intInputValue = Integer.parseInt(input);
break;
} catch (NumberFormatException ne) {
System.out.println("This is not a number");
}
}
}
当用户输入一个整数输入值时,该程序将结束。
输出
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while (!scan.hasNextInt()) {
System.out.println("Input is not a number.");
scan.nextLine();
}
int number = scan.nextInt();
}
此代码将检查输入是否为整数,如果是则继续。
只有当用户没有输入 integer.For 这种情况时才会出现这种错误,您可以创建一个 try-catch
块来捕获异常,如下所示:
String input = sc.next();
int number = 0;
try {
number = Integer.valueOf(input);
} catch (NumberFormatException ne) {
System.out.println("Invalid input!");
}
为了进一步优化解决方案,将这一切放在一个循环中,并在 try-block
中跳出,如果用户输入了错误的数字,则继续轮询输入。