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;
}
}
啊实打实的

本文介绍了一种将字符串转换为整数的有效算法,并详细解释了处理各种输入情况的方法,包括空字符串、空白字符、正负号及边界值处理。
476

被折叠的 条评论
为什么被折叠?



