- 用e来划分这个字符串
public boolean isNumeric(char[] str) {
if(str==null||str.length==0)
{
return false;
}
int index = -1;
for(int i=0;i<str.length;i++)
{
if(0 == str[i]-'e'||0==str[i]-'E')
{
index = i;
break;
}
}
//没有e
if(index==-1)
{
int flagIndex = -1;
int pointIndex = -1;
for(int i=0;i<str.length;i++)
{
if(str[i]=='-'||str[i]=='+')
{
if(i!=0)
{
return false;
}
}
else if(str[i]=='.')
{
if(pointIndex==-1)
{
pointIndex = i;
}
else
{
return false;
}
}
else if(str[i]>'9'||str[i]<'0')
{
return false;
}
}
if(pointIndex==0||pointIndex==str.length-1)
{
return false;
}
}
//e在开头或者结尾
else if(index==0||index==str.length-1)
{
return false;
}
else{
int pointIndex = -1;
for(int i=0;i<index;i++)
{
if(str[i]=='-'||str[i]=='+')
{
if(i!=0)
{
return false;
}
}
else if(str[i]=='.')
{
if(pointIndex==-1)
{
pointIndex = i;
}
else
{
return false;
}
}
else if(str[i]>'9'||str[i]<'0')
{
return false;
}
}
for(int i=index+1;i<str.length;i++)
{
if(str[i]=='-'||str[i]=='+')
{
if(i!=index+1)
{
return false;
}
}
else if(str[i]=='.')
{
return false;
}
else if(str[i]>'9'||str[i]<'0')
{
return false;
}
}
}
return true;
}