题目描述
Validate if a given string is numeric.
Some examples:
"0"
=> true
" 0.1 "
=> true
"abc"
=> false
"1 a"
=> false
"2e10"
=> true
解题思路
常规思路是遍历字符串,根据题意,判断字符串是否是合法的数字。
这里,我们可以利用正则表达式来完成题目的要求。匹配规则如下:
regex = "[-+]?(\\d+\\.?|\\.\\d+)\\d*(e[-+]?\\d+)?"
我们来分析一下上述正则表达式的意义:
代码
public static boolean isNumber(String s) {
if(s.trim().isEmpty()){
return false;
}
String regex = "[-+]?(\\d+\\.?|\\.\\d+)\\d*(e[-+]?\\d+)?";
if(s.trim().matches(regex)){
return true;
}else{
return false;
}
}