A string that represents the value of the title description
Implement a function to determine whether a string represents a numeric value (including integers and decimals). For example, the string "+100", "5e2", "123", "3.1416" and " -1E-16" all represent numeric values. But "12e", "1a3.14", "1.2.3", "+-5" and "12e+4.3" are not.
Ideas
- The structure of the value is ' +/-' + ' integer ' + '. ' + ' integer ' + ' e/e ' + ' +/-' + ' integer '
- Match by structure, if statement can match only once
Code
public class Solution {PublicBoolean IsNumeric (Char[]STR) {if (str = =null | |Str.length = =0) {ReturnFalse }IntPoint =0;int length =Str.length;if (str[0] = ='-' | |str[0] = =' + ') {point++; }Boolean result =Truewhile (Point < length &&str[Point] >=' 0 ' &&str[Point] <=' 9 ') {point++; }if (Point < Length) {if (str[Point] = =‘.‘) {point++;while (Point < length &&str[Point] >=' 0 ' &&str[Point] <=' 9 ') {point++; }if (Point = = length) {ReturnTrue }if (str[Point] = =' E ' | |str[Point] = =' E ') {result = IsE (StrPoint); }else {ReturnFalse } }Elseif (str[Point] = =' E ' | |str[Point] = =' E ') {result = IsE (StrPoint); }else {result =False } }return result; }PublicBoolean IsE (Char[]Strint start) {if (Str[start]! =' E ' &&Str[start]! =' E ') {ReturnFalse } start++;if (start = =Str.length) {ReturnFalse }if (str[start] = = ' + ' | | str[start] = = '-') {start++;} if (start = str.length) {return FALSE;} while (Start < str.length && str[start] <= ' 9 ' && str[start] >= ' 0 ') {start++;} if (start = str.length) {return true;} else {return false;}}
String representing a numeric value-Sword point offer