gpt4 book ai didi

java - 如何循环询问一个数字是否是整数?

转载 作者:行者123 更新时间:2023-11-30 07:38:31 24 4
gpt4 key购买 nike

x = input.nextInt();

while (!input.hasNextInt(x)) {
System.out.println("Enter a valid int");
x = input.nextInt();
}

while (x <=0 || x > 3) {
System.out.println("Choose a correct gear number: ");
x = input.nextInt();
}

switch(x) {
case 1:
System.out.println("You're in Gear 1");
break;
case 2:
System.out.println("Gear 2");
break;
case 3:
System.out.println("Gear3");
}

我不知道如何在 x 不是 int 时连续循环请求 int。我已经尝试了很多事情。每次我输入字母或字母数字组合(例如 Q23k2k 等)时,都会收到不匹配错误。我希望能够检查用户是否在我的方法中输入了他不应该输入的内容。

最佳答案

逻辑很简单,如果你使用 Scanner 类的 nextInt() 方法来读取像 23k 这样的字符串值,它会抛出一个 inputmismatch 异常,因为它需要一个 Integer 值,但你输入的是一个 String 值.

因此,您需要使用 next() 方法将输入读取为字符串,然后验证它是否为有效的整数值。

public static void main(String[] args){
System.out.println("Entered inside the program....");
Scanner console=new Scanner(System.in);
System.out.println("Enter an input...");
String s=console.next();
if(null==s || !isInt(s)){
System.out.println("Entered input is not a valid integer:"+s);
}
System.out.println("Entered input is a valid integer");
}

private static boolean isInt(String arg){
try{
Integer.parseInt(arg);
return true;
}catch(NumberFormatException nfe){
return false;
}
}

关于java - 如何循环询问一个数字是否是整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35029367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com