String to Integer

String to Integer

问题:

Implement atoi to convert a string to an integer.

Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.

Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.

思路:

  只是需要考虑的corner case多一些,思路很简单

我的代码:

public class Solution {

    public int myAtoi(String str) {

        if(str==null || str.length()==0 || str.trim().length()==0)  return 0;

        str = str.trim();

        boolean isPlus = true;

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

        {

            isPlus = false;

            str = str.substring(1);

        }

        else

        {

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

                str = str.substring(1);

        }

        long rst = 0;

        for(int i=0; i<str.length(); i++)

        {

            char c = str.charAt(i);

            if(isValidNum(c))

            {

                rst = rst*10 + (c-'0');

                long tmp = (isPlus ? rst : rst*-1);

                if(tmp>Integer.MAX_VALUE)   return Integer.MAX_VALUE;

                if(tmp<Integer.MIN_VALUE)   return Integer.MIN_VALUE;

            }

            else 

                break;

        }

        rst = (isPlus ? rst : rst*-1);

        return (int)rst;

    }

    public boolean isValidNum(char c)

    {

        return c<='9' && c>='0' ? true : false; 

    }



}
View Code

 

你可能感兴趣的:(Integer)