字符串转换整数 (atoi)
判断字符数字、+ - 符号
查看ASCII码表 数字[0,9]对应[48,57];+ - 符号对应43,45
public int myAtoi(String str) {
str = str.trim();
int num = 0;
int tag = 0;
for (Character ch : str.toCharArray()) {
if (ch == 43) {
if (tag != 0) break;
tag = 1;
} else if (ch == 45) {
if (tag != 0) break;
tag = -1;
} else if (ch < 48 || ch > 57) {
break;
} else {
if (tag==0) tag = 1;
int m = (ch - 48) * tag;
//溢出判断
if (num > Integer.MAX_VALUE / 10 || (num == Integer.MAX_VALUE / 10 && m > 7)) return Integer.MAX_VALUE;
if (num < Integer.MIN_VALUE / 10 || (num == Integer.MIN_VALUE / 10 && m < -8)) return Integer.MIN_VALUE;
num = num * 10 + m;
}
}
return num;
}