https://leetcode-cn.com/problems/ba-zi-fu-chuan-zhuan-huan-cheng-zheng-shu-lcof/
public int strToInt(String str) {
if (str == null || str.length() == 0 || str.trim().length() == 0) {
return 0;
}
int max = Integer.MAX_VALUE;
//2147483647
String trim = str.trim();
int negative = 1;
int ans = 0;
if (trim.charAt(0) == '-') {
negative = -1;
trim = trim.substring(1);
} else if (trim.charAt(0) == '+') {
trim = trim.substring(1);
}
int length = trim.length();
for (int i = 0; i < length; i++) {
//重点是如何处理溢出问题
if (trim.charAt(i) >= '0' && trim.charAt(i) <= '9') {
if (ans > max / 10) {
if (negative == -1) {
return Integer.MIN_VALUE;
}
return Integer.MAX_VALUE;
} else if (ans == max / 10 && trim.charAt(i) > '7') {
if (negative == -1) {
return Integer.MIN_VALUE;
}
return Integer.MAX_VALUE;
}
ans = ans * 10 + (trim.charAt(i) - '0');
} else {
break;
}
}
return ans * negative;
}