Implement atoi to convert a string to an integer.
Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.
Analysis
The following cases should be considered for this problem:
1. null or empty string 2. white spaces 3. +/- sign 4. calculate real value 5. handle min & max
public class Solution {
public int atoi(String str) {
if(str == null||str.trim().length() == 0)
return 0;
str=str.trim();//考虑前后有空格的出现
char[]ch=str.toCharArray();
long sum=0;
int flag=1;
for(int i=0;i<ch.length;i++)
{
if(ch[i]<'0'||ch[i]>'9')
{
if(i == 0)
{
if(ch[i] == '+')
continue;
else if(ch[i] == '-')
{
flag=-1;
continue;
}
else
break;//"123a123"这种情况,打印123
}
else
break;
}
sum=sum*10+ch[i]-'0';
}
sum=sum*flag;
if(sum>Integer.MAX_VALUE)
return Integer.MAX_VALUE;
if(sum<Integer.MIN_VALUE)
return Integer.MIN_VALUE;
return (int)sum;
}
}
啊实打实的