public class StrToInt {
//标记参数是否合法
boolean argsValid=true;
public int StrToInt(String str) {
if (str == null || str.trim().length() == 0) {
argsValid=false;
return 0;
}
str = str.trim();
int i = 0;
int sign = 1;
if (str.charAt(i) == '-') {
sign = -1;
i++;
} else if (str.charAt(i) == '+') {
i++;
}
int num = 0;
for (; i < str.length(); i++) {
int digit = str.charAt(i) - '0';
if (digit < 0 || digit > 9) {
argsValid=false;
return 0;
}
if(num>(Integer.MAX_VALUE-digit)/10){
if (sign > 0) {
return Integer.MAX_VALUE;
} else {
return Integer.MIN_VALUE;
}
}
num = num * 10 + digit;
//判断溢出,也可以用下边这段代码
// if (num % 10 != digit) {
// if (sign > 0) {
// return Integer.MAX_VALUE;
// } else {
// return Integer.MIN_VALUE;
// }
// }
}
return sign * num;
}
}
剑指offer 把字符串转换成整
猜你喜欢
转载自blog.csdn.net/csdnlijingran/article/details/88639695
今日推荐
周排行