AcWing 31. 表示数值的字符串
原题链接
困难
作者:
JAVA小老弟
,
2020-07-28 17:54:50
,
所有人可见
,
阅读 383
class Solution {
public boolean isNumber(String strss) {
String strs = strss.trim();
if(strs.length()==0)
return false;
int dot =0;
boolean e = false;
if(strs.charAt(0)=='+' || strs.charAt(0)=='-')//去除一开始的符号
strs = strs.substring(1,strs.length());
if(strs.length()==0)
return false;
if(strs.length()==1 && strs.charAt(0)=='.')// 去除“.”
return false;
for(int i=0;i<strs.length();i++){
if(strs.charAt(i)>='0' && strs.charAt(i)<='9')
continue;
else if(strs.charAt(i)=='.'){//去除e1.
dot++;
if(dot>1 || e )
return false;
}
else if (strs.charAt(i)=='e' || strs.charAt(i)=='E'){//去除.e e
if(e || (i-1<0) || strs.charAt(i-1)>'9' || strs.charAt(i-1)<'0')
return false;
e = true;
if(i+1== strs.length())
return false;
if (strs.charAt(i+1)=='+'|| strs.charAt(i+1)=='-')
i = i+1;
}
else
return false;
}
return true;
}
}