表示数值的字符串
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。
例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。
但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。
分析
使用正则表达式判断即可
更多关于正则表达式见:
[+-]?[0-9]*(\\.[0-9]*)?([eE][+-]?[0-9]+)?
[+-]?
:数字最开始的符号位[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);
}
}