字符串转换成整数

  • 注意边界条件:字符串是否为空、长度是否为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;
    }

你可能感兴趣的:(字符串转换成整数)