剑指offer中的将字符串转换成为整数

/*

需要考虑的就是一些特殊输入,特殊字符,正负号,溢出,空格

*/

public class Solution {
    public int StrToInt(String str) {
          boolean minus = false;
        long num = 0;


      if(str==null)
        {
            return  0;
        }
        int len = str.length();
        if (len == 0) {
            return 0;
        }
        str = str.replace(" ", "");
        char[] chars = str.toCharArray();
        int i = 0;
        if (chars[i] == '-') {
            minus = true;
            i++;
        } else if(chars[i]=='+'){
            i++;
        }

        while (i < chars.length) {
            if (chars[i] >= '0' && chars[i] <= '9') {
                num = num * 10 + (chars[i]-'0');
                if ((!minus && (num > Integer.MAX_VALUE)) || (minus && num <Integer.MIN_VALUE)) {
                    num = 0;
                    break;
                }
                i++;
            } else {
                num = 0;
                break;
            }
        }
        return minus ? 0 - (int) (num) : (int) num;
    }
}

猜你喜欢

转载自blog.csdn.net/liu_12345_liu/article/details/81391544