(1)代码
class Solution {
public int strToInt(String str) {
char[] c = str.trim().toCharArray();
if(c.length == 0) return 0;
int res = 0, bnday = Integer.MAX_VALUE / 10;
int i = 1, sign = 1;
if(c[0] == '-') sign = -1;
else if(c[0] != '+') i = 0;
for(int j = i; j < c.length; j++){//这里是j = i
if(c[j] < '0' || c[j] > '9') break;
if(res > bnday || res == bnday && c[j] > '7') return sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
res = res * 10 + (c[j] - '0');
}
return sign * res;
}
}
class Solution {
public int strToInt(String str) {
int i = 0, sign = 1, length = str.length();
int bndry = Integer.MAX_VALUE / 10, res = 0;
if(length == 0) return 0;
while(str.charAt(i) == ' '){
if(++i == length) return 0;
}
if(str.charAt(i) == '-') sign = -1;
if(str. charAt(i) == '-' || str.charAt(i) == '+') i++;
for(int j = i; j < length; j++){
if(str.charAt(j) < '0' || str.charAt(j) > '9') break;
if(res > bndry || res == bndry && str.charAt(j) > '7') return sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
res = res * 10 +(str.charAt(j) - '0');
}
return sign * res;
}
}