- 先处理空
- 再处理正负号
- 再处理首位为0值
- 最后进行数值处理
public class Solution {
public int StrToInt(String str) {
int num = 0, flag = 1;
// 处理空
if(str == null || str.isEmpty()) {
return 0;
}
// 处理符号
if(str.charAt(0) == '-') {
flag = -1;
str = str.substring(1,str.length());
} else if(str.charAt(0) == '+'){
str = str.substring(1,str.length());
}
// 处理空
if(str == null || str.isEmpty()) {
return 0;
}
// 处理第一位0
if(str.charAt(0) == '0') {
return 0;
}
// 累计
for(char c : str.toCharArray()) {
if(c < '0' || c > '9') {
return 0;
} else {
num = (c - '0') + num * 10;
}
}
return flag * num;
}
}