Validate if a given string is numeric.
Some examples:
“0” => true
” 0.1 ” => true
“abc” => false
“1 a” => false
“2e10” => true
Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one.
Update (2015-02-10):
The signature of the C++ function had been updated. If you still see your function signature accepts a const char * argument, please click the reload button to reset your code definition.
正则表达式大法:
“^(-|\+)?[0-9]+(\.[0-9]*)?(e(-|\+)?[0-9]+)?
”“(−|\+)?\.[0−9]+(e(−|\+)?[0−9]+)?
”
public boolean isNumber(String s) {
s = s.trim();
String pattern1 = "^(-|\\+)?[0-9]+(\\.[0-9]*)?(e(-|\\+)?[0-9]+)?$";
String pattern2 = "^(-|\\+)?\\.[0-9]+(e(-|\\+)?[0-9]+)?$";
//System.out.println(s +" " +s.matches(pattern1)+" " + s.matches(pattern2));
System.out.println(s);
return s.matches(pattern1) || s.matches(pattern2);
}