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

输入验证检查输入是否为双精度

输入验证检查输入是否为双精度

拉丁的传说 2022-06-23 15:49:16
我想检查我输入的输入是否是正确的数据类型。例如,如果用户int在我希望他们输入时输入 a,double那么程序会告诉他们有错误。这是我到目前为止所拥有的:System.out.println("Enter the temperature in double:");String temp = input.nextLine();try{    Double temperature = Double.parseDouble(temp);}catch(Exception e){    isValid = false;    System.out.println("Temperature  must be a double ");}它所做的一切都是通过程序继续进行,而不是在我输入int. 一直坚持这一点,所以任何帮助将不胜感激。
查看完整描述

2 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

我认为您正在寻找仅验证十进制数字(不包括整数)。如果是这种情况,那么您可以使用正则表达式:


System.out.println("Enter the temperature in double:");

String temp = input.nextLine();

while (temp != null && !temp.matches("^[0-9]*\\.([0-9]+)+$")) {       // use of regex here

    System.out.println("Enter the temperature in double:");

    temp = input.nextLine();                                          // read input again

}

这将循环直到用户只输入有效的十进制输入。这个 正则表达式的解释。


查看完整回答
反对 回复 2022-06-23
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

由于您不想int被接受,您可以添加一个if来检查输入String是否有小数点。


    System.out.println("Enter the temperature in double:");

    String temp = (new Scanner(System.in)).next();

    if (temp.contains(".")) {

        try {

            Double temperature = Double.parseDouble(temp);

        } catch(Exception e) {

            isValid = false;

            System.out.println("Temperature  must be a double ");

        }

    } else {

        isValid = false;

        System.out.println("Temperature  must be a double ");

    }


查看完整回答
反对 回复 2022-06-23
  • 2 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号