请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,
字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
class Solution01 { int label=0; public boolean isNumeric(char[] str) { if(str==null){ return false; } boolean result=isInteger(str,label); if(label==str.length) return result; if(str[label]=='.'){ label++; result = isUnsignedInteger(str,label) || result; if(label==str.length) return result; } if(str[label]=='E' || str[label]=='e'){ label++; result = isInteger(str, label) && result; if(label==str.length) return result; } if(label==str.length) return true; return false; } /*是否是整数*/ boolean isUnsignedInteger(char[] str,Integer i){ Integer num=i; while(i<str.length && (str[i]>='0' && str[i]<='9')){ i++; } label=i; return i>num; } /* 判断是否是以 + 或 - 起始的整数 */ boolean isInteger(char[] str,Integer i){ if(i<str.length && (str[i]=='+' || str[i]=='-')) i++; return isUnsignedInteger(str,i); } }