【思路】
处理空格-->首字符正负号-->循环计算时的非法字符-->int类型溢出
public class Solution {
public int StrToInt(String str) {
if (str == null || str.length() == 0) {
return 0;
}
str = str.trim();
if (str.length() == 0) {
return 0;
}
boolean flag = false;
long result = 0;
char firstChar = str.charAt(0);
if (firstChar == '+') {
flag = false;
} else if (firstChar == '-') {
flag = true;
} else if (firstChar >= '0' && firstChar <= '9') {
result = firstChar - '0';
}
for (int i = 1; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch >= '0' && ch <= '9') {
result *= 10;
result += ch - '0';
} else {
return 0;
}
}
if (flag) {
result = -result;
}
if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) {
return 0;
}
return (int) result;
}
}
京公网安备 11010502036488号