仓库源文站点原文

<br/>

<!--more-->

表示数值的字符串

表示数值的字符串

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。

例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。

但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。


分析

使用正则表达式判断即可

更多关于正则表达式见:

给女朋友写小工具的总结之-正则表达式

[+-]?[0-9]*(\\.[0-9]*)?([eE][+-]?[0-9]+)?


代码

public class Solution {
    private static final String NUMBER_EXP = "[+-]?[0-9]*(\\.[0-9]*)?([eE][+-]?[0-9]+)?";

    public boolean isNumeric(char[] str) {
        return new String(str).matches(NUMBER_EXP);
    }
}