- 注意边界条件:字符串是否为空、长度是否为0、开头是'+'、'-'的情况
- 核心算法:在for循环中,将一串数字字符转化为数字,可以看作一个技巧。指针不需要从个位开始。
sum = sum * 10 + str.charAt(i) - '0';
完整代码:
public static int parseInt(String str)
{
if (str == null || str.length() == 0)
return 0;
//正数
int negv = 0;
if (str.charAt(0) == '-')
negv = 1;//负数
int sum = 0;
for (int i = negv; i < str.length(); ++i)
{
//如果第一位为+号,直接跳过
if (i == 0 && str.charAt(i) == '+')
continue;
//如果一旦有不合法的字符,直接返回0
if (str.charAt(i) < '0' || str.charAt(i) > '9')
return 0;
//核心算法,也算是一个技巧吧。
sum = sum * 10 + str.charAt(i) - '0';
}
return negv == 0 ? sum : sum * -1;
}
网友评论