• 先处理空
  • 再处理正负号
  • 再处理首位为0值
  • 最后进行数值处理
public class Solution {
    public int StrToInt(String str) {
        int num = 0, flag = 1;
        // 处理空
        if(str == null || str.isEmpty()) {
            return 0;
        }

        // 处理符号
        if(str.charAt(0) == '-') {
            flag = -1;
            str = str.substring(1,str.length());
        } else if(str.charAt(0) == '+'){
            str = str.substring(1,str.length());
        }

        // 处理空
        if(str == null || str.isEmpty()) {
            return 0;
        }

        // 处理第一位0
        if(str.charAt(0) == '0') {
            return 0;
        }

        // 累计
        for(char c : str.toCharArray()) {
            if(c < '0' || c > '9') {
                return 0;
            } else {
                num = (c - '0')  + num * 10;
            }
        }

        return flag * num;
    }
}