class Solution {
public int myAtoi(String str) {
if((str.length()==0)||(str==null))
return 0;
str=str.trim();
if(str.length()==0)
return 0;
double sum=0;//关键时刻还得Double来救场,233333,一开始用的Long超界了。//测试附图如下
int i,flag=1;
//System.out.println("step0");
if((str.charAt(0)!='+')&&(str.charAt(0)!='-')&&((str.charAt(0)<'0'&&str.charAt(0)>'9')))
return 0;
//System.out.println("step1");
if(str.charAt(0)=='-') {
flag=-1;
str=str.substring(1);
}
else if(str.charAt(0)=='+')
str=str.substring(1);
for(i=0;i<str.length();i++) {
if(!(str.charAt(i)>='0'&&str.charAt(i)<='9'))
break;
sum=sum*10+(str.charAt(i)-'0');
}
sum=sum*flag;
if(sum>Integer.MAX_VALUE)
return Integer.MAX_VALUE;
else if(sum<Integer.MIN_VALUE)
return Integer.MIN_VALUE;
else
return (int)sum;
}
}
改为Double后就是这样了: