[leetCode]剑指 Offer 67. 把字符串转换成整数
解法
要考虑清楚非法输入、溢出等问题
class Solution {
public int strToInt(String str) {
if (str == null) return 0;
str = str.trim();
if (str.length() == 0) return 0;
int i = 0;
long num = 0L;
boolean minus = false;
if (str.charAt(i) == '+') {
++i;
} else if (str.charAt(i) == '-') {
++i;
minus = true;
}
while (i < str.length()) {
if (str.charAt(i) >= '0' && str.charAt(i)<= '9') {
num = num * 10 + str.charAt(i) - '0';
if (!minus && num > Integer.MAX_VALUE) {
num = Integer.MAX_VALUE;
break;
} else if (minus && num > 1L + Integer.MAX_VALUE ) {
num = Integer.MAX_VALUE + 1L;
break;
}
++i;
} else {
break;
}
}
if (minus)
num = 0 - num;
return (int)num;
}
}