Java双输入验证

用户名

下面是代码:

    Scanner scan = new Scanner(System.in);
    String input = scan.next();
    try{
        double isNum = Double.parseDouble(input);
        if(isNum == Math.floor(isNum)) {
            System.out.println("Input is Integer");
             //enter a double again
        }else {
            System.out.println("Input is Double");
            //break
        }
    } catch(Exception e) {
        if(input.toCharArray().length == 1) {
            System.out.println("Input is Character");
             //enter a double again
        }else {
            System.out.println("Input is String");
            //enter a double again
        }
    }

从此处获取:如何检查用户输入的数据类型有效性(Java Scanner类)

但是,当我输入1.0或0.0时,仍将其视为整数,是否将1.0视为双精度?

请大家帮忙,谢谢!

伊瓦伊洛·斯拉沃夫(Ivaylo Slavov)

如果你要正确对待1.0作为Double一个1作为Integer,你需要与工作input变量,它的类型的String

Java将始终Double x = 1Double y = 1.0(含义1是有效Double相同的方式对待,因此您将无法通过代码来区分它们。

由于您具有输入的原始字符串表示形式,因此请使用正则表达式或其他验证进行检查。例如,用于double的示例正则表达式模式看起来像是"[0-9]+(\.){0,1}[0-9]*"整数,"[0-9]+"或者"\d+"

这是一个例子:

final static String DOUBLE_PATTERN = "[0-9]+(\.){0,1}[0-9]*";
final static String INTEGER_PATTERN = "\d+";

Scanner scan = new Scanner(System.in);
String input = scan.next();

if (Pattern.matches(INTEGER_PATTERN, input)) {
    System.out.println("Input is Integer");
    //enter a double again
} else if (Pattern.matches(DOUBLE_PATTERN, input)) {
    System.out.println("Input is Double");
    //break
} else {
    System.out.println("Input is not a number");
    if (input.length == 1) {
        System.out.println("Input is a Character");
        //enter a double again
    } else {
        System.out.println("Input is a String");
        //enter a double again
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

验证“价格”(双精度)表单输入PHP

来自分类Dev

Java字符输入验证

来自分类Dev

Java输入验证设计

来自分类Dev

使用Java验证输入

来自分类Dev

C#中的浮点/双型输入验证

来自分类Dev

C#将输入验证为双精度

来自分类Dev

验证字符串输入并返回双输出的方法

来自分类Dev

C#中的浮点/双型输入验证

来自分类Dev

验证Java中的double输入

来自分类Dev

2个十进制输入的双jQuery验证并获得更大的数字

来自分类Dev

Laravel验证双嵌套

来自分类Dev

Java中字符串的输入验证

来自分类Dev

java / jersey / jackson-验证输入JSON

来自分类Dev

使用GUI进行输入验证(java)

来自分类Dev

双输入MVC扩展

来自分类Dev

双输入MVC扩展

来自分类Dev

双变量输入

来自分类Dev

JAVA-如何为用户输入设置输入范围验证

来自分类Dev

JAVA-如何为用户输入设置输入范围验证

来自分类Dev

输入验证与模型验证

来自分类Dev

在Java中验证字符串/双精度的初学者方式

来自分类Dev

打印时双哈希输入

来自分类Dev

Java Seperate方法将双精度输入转换为两位小数

来自分类Dev

如何在Java中格式化双输入而不四舍五入?

来自分类Dev

线程“主”中的异常java.util.InputMismatchException“双精度”输入错误

来自分类Dev

Java Seperate方法将双输入转换为小数点后两位

来自分类Dev

将输入从TextField转换为双随机生成的数字[Java / JavaFX]

来自分类Dev

当我输入整数时,为什么我的Java双变量类型变为0.0?

来自分类Dev

如何检查在Java中输入文本的模式验证结果?