java integer char_关于Java:键入Char / String而不是Integer时输出错误

这篇博客讨论了在Java程序中如何处理用户输入年龄时遇到的异常情况。当用户输入非整数(如字母)时,程序会抛出`InputMismatchException`。通过使用异常处理机制,例如`try-catch`块,可以捕获此类异常并显示“无效输入”错误消息,确保程序的稳定运行。示例代码展示了不同方法来检查输入是否为有效的整数年龄。

package project2;

import java.util.*;

public class Project2 {

public static void main(String[] args) {

String Name;

int age;

Scanner input = new Scanner(System.in);

System.out.print("Enter your age :");

age = input.nextInt();

if (age>=16){

System.out.println("Your good to go");}

else if ((age>=1)&&(age<=15)){

System.out.println("Your not allowed to Procced");}

else{

System.out.println("Out of range");}

}

}

对不起,新手:/。 因此,当我在"输入您的年龄"中输入字母时显示此问题

输入您的年龄:q

线程"主"中的异常java.util.InputMismatchException

在java.util.Scanner.throwFor(Scanner.java:909)

在java.util.Scanner.next(Scanner.java:1530)

在java.util.Scanner.nextInt(Scanner.java:2160)

在java.util.Scanner.nextInt(Scanner.java:2119)

在project2.Project2.main(Project2.java:14)

Java结果:1

我想输入任何字母显示"无效输入"。 谁能帮我? [对不起英语不好]

您期望发生什么?

q不是int,nextInt()需要整数对吗?

我想要输入字母显示"无效输入"

if i typed any letter it shows"Invalid input". Can anyone help me?

捕获异常并打印消息,如下所示-

try{

System.out.print("Enter your age :");

age = input.nextInt();

}catch(RuntimeException ex){

System.out.println("Invalid input");

}

嘿,吉祥的光! 谢谢你 :)

使用异常处理

import java.util.*;

public class crack

{

public static void main(String[] args)

{

String Age;

Scanner input = new Scanner(System.in);

System.out.print("Enter your age :");

Age = input.nextLine();

try

{

int age = Integer.parseInt(Age);

if (age>=16)

{

System.out.println("Your good to go");

}

else if ((age>=1)&&(age<=15))

{

System.out.println("Your not allowed to Procced");

}

}

catch(NumberFormatException nFE)

{

System.out.println("out of range");}

}

}

}

将输入作为String并检查它是否为数字

Scanner input = new Scanner(System.in);

System.out.print("Enter your age :");

String rawAge = input.next();

try {

int age = Integer.parseInt(rawAge);

System.out.println("Age:" + age);

// Do something with age

} catch (NumberFormatException e) {

System.out.println("Invalid input for age");

}

尝试这个 :

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

int age = 0;

boolean isContinue = true;

do {

try {

System.out.print("Enter your age :");

String age1 = input.next();

age = Integer.parseInt(age1);

isContinue = false;

if (age >= 16) {

System.out.println("Your good to go");

} else if ((age >= 1) && (age <= 15)) {

System.out.println("Your not allowed to Procced");

} else {

System.out.println("Out of range");

}

} catch (NumberFormatException e) {

System.out.println("Not an valid age");

}

} while (isContinue);

System.out.println("other code");

}

在使用input.nextInt()读取int之前,请使用input.hasNextInt()进行检查,这将足以读取它是否是一个int(但将其留给nextInt读取;它不会弄乱任何内容),然后将其返回。

if(!input.hasNextInt())

System.out.println("Not an int");

else

{

int age = input.nextInt();

// other code here

}

您是否曾经问过某人他的年龄,他告诉过您:q? 这不是年龄,也不是int。

由于nextInt,您正在获取异常:

throws InputMismatchException - if the next token does not match the

Integer regular expression, or is out of range

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值