首先判断字符串长度
然后开始去空格
然后判断符号和第一个非空字符
然后开始转换成整数并判断是否超出位数
输出结果
class Solution {
public int myAtoi(String str) {
if(str.length()==0)
return 0;
int i=0;
int ans=0,max=Integer.MAX_VALUE,min=Integer.MIN_VALUE;
boolean bool=true;
while(i<str.length()&&str.charAt(i)==' ')
{
i++;
}
if(i==str.length())
return 0;
if(str.charAt(i)=='-'||str.charAt(i)=='+')
{
bool=str.charAt(i)=='-'?false:true;
i++;
}
else if(str.charAt(i)<48||str.charAt(i)>57)
return 0;
while(i<str.length()&&str.charAt(i)>=48&&str.charAt(i)<58)
{
ans=ans*10+(str.charAt(i)-48);
i++;
if(i<str.length()&&str.charAt(i)>=48&&str.charAt(i)<58)
{if(ans>max/10||ans==max/10&&str.charAt(i)-48>7||ans==max/10&&str.charAt(i)-48>8&&!bool)
{
if(!bool)
return min;
return max;
}
}
}
if(!bool)
ans=-ans;
return ans;
}
}