AcWing 31. 表示数值的字符串
原题链接
困难
作者:
小纸条o--o
,
2019-05-18 17:39:12
,
所有人可见
,
阅读 839
Java 代码
public boolean isNumber(String s) {
s=s.trim();
if (s.length()==0)
return false;
if(s.charAt(0)=='-'||s.charAt(0)=='+') s=s.substring(1);
if (s.isEmpty()||s.charAt(0)=='.'&&s.length()==1)return false;
int dot=0,e=0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i)>='0'&&s.charAt(i)<='9')
continue;
else if (s.charAt(i)=='.'){
dot++;
if (dot>1||e!=0)
return false;
}
else if(s.charAt(i)=='e'||s.charAt(i)=='E')
{
e++;
if(i+1==s.length()||i==0||e>1||i == 1 && s.charAt(0) == '.')
return false;
if (s.charAt(i + 1) == '+' || s.charAt(i + 1) == '-')
{
if (i + 2 == s.length()) return false;
i ++ ;
}
}else
return false;
}
return true;
}