美文网首页
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