美文网首页
String to Integer (atoi)

String to Integer (atoi)

作者: 走地牙 | 来源:发表于2018-07-05 06:00 被阅读0次

/*

判定是否为空

trim 后是否长度为0

开始字符如果不是数字或者符号 return 0;

sign = 1;

如果开始为‘-’ sign = -1;

start + 1;

设置num 为long类型 然后 如果字符是数字 则 *10 叠加;

同时判断是否越界;

*/

class Solution {

    public int myAtoi(String str) {

        if(str == null) return 0;

        str = str.trim();

        if(str.length() == 0) return 0;

        if(!(str.charAt(0) == '-' || str.charAt(0) == '+' || (str.charAt(0) <= '9' && str.charAt(0) >= '0'))) return 0;

        int sign = 1;

        long num = 0;

        int start = 0;

        if(str.charAt(0) == '-') {

            sign = -1;

            start += 1;

        }

        if(str.charAt(0) == '+') {

            start += 1;

        }

        for(; start < str.length(); start++) {

            if(str.charAt(start) <= '9' && str.charAt(start) >= '0') {

                num = num * 10 + (str.charAt(start) - '0');

                if(num > Integer.MAX_VALUE) {

                    return (int)(num = sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE);   

                }

            }else {

                break;

            }

        }

        return (int)(num * sign);

    }

}

相关文章

网友评论

      本文标题:String to Integer (atoi)

      本文链接:https://www.haomeiwen.com/subject/hrruuftx.html