为了账号安全,请及时绑定邮箱和手机立即绑定

如何允许我的程序根据用户输入的类型执行某些操作?

如何允许我的程序根据用户输入的类型执行某些操作?

慕勒3428872 2022-09-07 17:27:53
我已经用Java创建了一个“汽车金融”计算器,但是我想确保不仅涵盖了快乐的道路。当用户输入字符串时,程序将退出,因为它需要一个整数。然后我想,如果我将输入设置为字符串,然后将其转换为整数,但是我只希望在输入被识别为整数的情况下进行此转换...如果这有意义的话。if(a.equalsIgnoreCase("Blue Car")) {        System.out.println("This car is £9,000");        Scanner input = new Scanner(System.in);        System.out.println("Please type in your deposit amount.");         String value = "";        int intValue;        value = input.nextLine();         try {        intValue = Integer.valueOf(value);        } catch (NumberFormatException e) {        System.out.println("Please print only numbers!");        }                   if(value < 9000) {        System.out.println("The price of the car after your deposit is: " + (9000 - intValue));         System.out.println("Please confirm the left over price after your deposit by typing it in.");        int value1 = 0;        value1 = input.nextInt();        System.out.println("How long would you like the finance to be?");         System.out.println("12 Months, 24 Months, 36 Months, 48 Months");        System.out.println("Please type either 12, 24, 36 etc");         int value2 = 0;        value2 = input.nextInt();        System.out.println("You will be paying " + value1 / value2 + " pounds a month!"); }        else if(value.equalsIgnoreCase ("")){            System.out.println("Please only enter numbers.");        }        else {            System.out.println("Great - you can pay the car in full!");            chooseOption = true;         }我尝试使用parseInt,但是我只希望在输入数字时发生parseInt。我希望我的程序能够识别用户输入是否是整数,然后执行if/else语句,该语句使用该整数进行计算,如果输入不是整数,那么我希望弹出一条消息,说“请确保您输入数字”。更新我已经添加了某人在评论中建议的方法,但我不确定如何将其与我拥有的代码相匹配,因为它仍然告诉我值不是整数,因此我无法使用“<”。
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

欢迎来到堆栈溢出。


您正好在正确的路径上,但您需要了解异常 - 当parseInt尝试解析不是整数的值时,它会引发异常。在Java中,我们可以捕获和异常并处理它(而不是让它杀死程序的运行)。


对于您的情况,它看起来像这样:


try {

  int result = Integer.parseInt(value);           

  //Do your normal stuff as result is valid

}

catch (NumberFormatException e)

{

   // Show your message "Please only enter numbers"  

}

//Code continues from here in either case


查看完整回答
反对 回复 2022-09-07
?
慕仙森

TA贡献1827条经验 获得超7个赞

来自以下文档:java.lang.Integer


Throws:

NumberFormatException - 如果字符串不包含可解析整数。


因此,只需捕获该异常,您就会知道字符串不包含可解析整数。


int result;

try {

    result = Integer.parseInt(value);

}

catch (NumberFormatException e) {

    // value was not valid, handle here

}


查看完整回答
反对 回复 2022-09-07
?
慕斯709654

TA贡献1840条经验 获得超5个赞

您可以使用StringUtils.isNumeric,如果你想添加一个第三方库。


如果你的用例足够简单,我可能会这样做:


int intValue;

String value = "";

value = input.nextLine(); 

try {

    intValue = Integer.valueOf(value);

} catch (NumberFormatException e) {

    System.out.println("Please print only numbers!");

}


查看完整回答
反对 回复 2022-09-07
  • 3 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信