题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
public int strToInt(String str) {
char[] chars = str.trim().toCharArray();
if (chars.length == 0) return 0;
int ans = 0;
int idx = 1;
int sign = 1;
if (chars[0] == '-') {
sign = -1;
} else if (chars[0] == '+') {
} else {
idx = 0;
}
int bndry = Integer.MAX_VALUE / 10;
for (int i = idx; i < chars.length; i++) {
if (chars[i] < '0' || chars[i] > '9') break;
if (ans > bndry || ans == bndry && chars[i] > '7') {
return sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
}
ans = ans * 10 + (chars[i] - '0');
}
return sign * ans;
}