当前位置: 首页 > 面试题库 >

一起验证int和float值

岳浩穰
2023-03-14
问题内容

我正在amount通过其getter 获取对象中命名的值,如下所示。

比方说,目标是h

h.getAmount()

现在,我需要开发一个验证器,该验证器将验证amount应为整数类型,如果不是,则将引发异常,我也开发了如下所示的程序

private  boolean isint (String amount){
    boolean isValid = true;
    try {
        Integer.parseInt(amount); 
    }
    catch(NumberFormatException e){
        isValid = false;
    }
     return isValid;
}

现在的问题是,amount来自h是一个整数,例如1234,但也可以是一个浮点数,例如1258.26。因此,在float的情况下会引发一个NumberFormatException

我如何才能使它们对于整数或浮点数都完美?


问题答案:

你可以这样使用regex

if (str.matches("[-+]?[0-9]*\\.?[0-9]+")) { // You can use the `\\d` instead of `0-9` too!
    // Is a number - int, float, double         
}

[-+]? -为标志。

[0-9] * \。?[0-9] + -用于数字和它们之间的小数点。

更新:-

如果也需要处理指数,则regex可以使用以下内容。

String regex = "[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?";


 类似资料:
  • 我使用Kotlin/Springboot,并希望使用映射到数据类。我想将映射到 来自: 但我有这样的错误: 我现在不知道。

  • 问题内容: 在golang中,始终将JSON消息中的数字解析为float64。为了检测它是否实际上是整数,我正在检查其类型。不幸的是,没有常数代表。 有没有更优雅的解决方案,而不是使用0或0.0来获取? 问题答案: 您也可以在类型的文档上使用或方法,其可能的值在程序包中作为常量列出。 您也可以在中使用它: 请注意,和都有一个方法,因此,如果您以和开头,都可以使用它。

  • 描述 (Description) java.lang.reflect.Array.getFloat(Object array, int index)方法以float形式返回指定数组对象中索引组件的值。 声明 (Declaration) 以下是java.lang.reflect.Array.getFloat(Object array, int index)方法的声明。 public static f

  • 我试图验证输入,这样用户只允许输入一个有9位数字的int。我当前的代码负责前导零,任何大于9位的输入,但如果小于9位则不负责。 例如,它不应该允许用户输入int 123。 如果数字大于9,下面的代码将验证数字输入,但不考虑小于9的数字。 如果用户输入的整数小于9位。由于字符串的原因,它将填充剩余的插槽,并使其成为9位数字。格式(我只包含这个,以便它适用于前导零)。我不知道如何绕过前导零,以及确保输

  • 如果我使用以下配置,那么jackson转换器工作(mvc声明是最后) 如果我在dispatcher.xml中使用此配置,那么验证工作,但转换不工作。(mvc声明优先) 非常感谢您的任何帮助。Spring版本4.0.6

  • 我想在Swift中将转换为。像这样的基本强制转换不起作用,因为这些类型不是原语,不像Objective-C中的s和s