Validate if a given string is numeric.
Example
“0” => true “ 0.1 “ => true “abc” => false “1 a” => false “2e10” => true “ -90e3 “ => true “ 1e” => false “e3” => false “ 6e-1” => true “ 99e2.5 “ => false “53.5e93” => true “ –6 “ => false “-+3” => false “95a54e53” => false
Note
It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one. However, here is a list of characters that can be in a valid decimal number:
Numbers 0-9 Exponent - “e” Positive/negative sign - “+”/“-“ Decimal point - “.”
Of course, the context of these characters also matters in the input.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
public boolean (String s) { boolean isNum = false ; int i = 0 ; while (i < s.length() && Character.isWhitespace(s.charAt(i))) i++; if (i < s.length() && (s.charAt(i) == '+' || s.charAt(i) == '-' )) i++; while (i < s.length() && Character.isDigit(s.charAt(i))) { isNum = true ; i++; } if (i < s.length() && s.charAt(i) == '.' ) { i++; while (i < s.length() && Character.isDigit(s.charAt(i))) { isNum = true ; i++; } } if (isNum && i < s.length() && s.charAt(i) == 'e' ) { isNum = false ; i++; if (i < s.length() && (s.charAt(i) == '+' || s.charAt(i) == '-' )) i++; while (i < s.length() && Character.isDigit(s.charAt(i))) { isNum = true ; i++; } } while (i < s.length() && Character.isWhitespace(s.charAt(i))) i++; return isNum && i == s.length(); }
近期评论