字符串转换整数
解题思路:
去掉前空格后,首先判断是否长度就为0了,若不是,则把开头的符号和后面的数字赋值给一个新的字符串,最后try转换下,若不行,则说明只有符号或超出界限。
代码:
public int MyAtoi(string str)
{
string lgx = str.TrimStart();
if (lgx.Length == 0)
return 0;//如果去掉空格后长度为0直接返回0。
string result = string.Empty;
int i = 0;
while (lgx[i]>='0'&&lgx[i]<='9'||(i==0&&lgx[i]=='-')||(i==0&&lgx[i]=='+'))
{
result += lgx[i];
i++;
if (i >= lgx.Length)
break;
}
if (result.Length == 0)
return 0;//如果第一个字符就不是数字也不是符号的情况。
else
{
try
{
return int.Parse(result);
}
catch
{
if (result.Length == 1)
return 0;//要特别注意前多个字符都是符号的情况。
else if (result[0] == '-')
return int.MinValue;
else
return int.MaxValue;
}//判断是否数据过大。
}
}