特殊情况:第一个字符是+/-;小数点最多一个;e最多一个;e可以紧接着+/-;小数点或e后面必须有数字;字符不符合要求。
public boolean isNumeric(String s){
if(s==null || s.length()==0) return false;
s = s.trim();
int cur = 0;
if(s.charAt(0)=='-' || s.charAt(0)=='+') cur=1;
int num_e = 0;
int num_dot =0;
boolean pre_e = true;
boolean pre_dot = true;
while(cur < s.length()){
if(s.charAt(cur)=='.'){
if(cur==s.length()-1) return false;
if(!pre_dot) return false;
pre_dot = false;
cur++;
continue;
}
if(s.charAt(cur)=='e'){
if(cur==s.length()-1) return false;
if(!pre_e) return false;
pre_e = false;
cur++;
continue;
}
if((s.charAt(cur)=='-' || s.charAt(cur)=='+') && cur>1 && s.charAt(cur-1)=='e'){
cur++;
continue;
}
if(s.charAt(cur)>'9' || s.charAt(cur)<'0') return false;
cur++;
}
return true;
}