Java库,用于检查字符串是否包含数字(无*例外)

问题描述

我将避免重新发明此方法,而应使用Apache Commons。如果您使用Spring,Struts或许多其他常用的Java库,则它们通常包含Apache Commons。您将需要commons- lang.jar文件。这是您想要的NumberUtils中方法

isNumber[1]

public static boolean isNumber(java.lang.String str)
Checks whether the String a valid Java number.

Valid numbers include hexadecimal marked with the 0x qualifier, scientific notation and numbers marked with a type qualifier (e.g. 123L).

Null and empty String will return false.

Parameters:
str - the String to check
Returns:
true if the string is a correctly formatted number

解决方法

我正在寻找一种方法,如果传递的字符串是有效数字(例如,“ 123.55e-9”,“-333,556”),则返回布尔值。我 希望只是做:

public boolean isANumber(String s) {
    try { 
        BigDecimal a = new BigDecimal(s); 
        return true;
    } catch (NumberFormatException e) {
        return false;
    }
}

显然,该函数应使用状态机(DFA)来解析字符串,以确保无效的示例不会使其蒙骗(例如“ -21,22.22.2”,“
33-2”)。你知道这样的图书馆是否存在吗?我真的不想自己写它,因为这是一个很明显的问题,我相信我会重新发明轮子。

谢谢,

缺口

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”