1.先判断字符串是否为空
2.设置符号位 flg ,将字符串转换为 字符数组 (这是由于字符串的底层时一个final 修饰的字符数组,当第一个字符是符号位时,不能直接被修改)
3.判断第一个字符是否为符号位‘+’ ‘-’ ,相应的把符号位改为 1 或 -1 ,并把字符数组的第一位设置位‘0’;
4.遍历字符数组,若出现不是数字字符的值直接将 sum 设置为 0, 否则根据 sum = sum * 10 + chs[i] - ‘0’;求出 数字值。
5.return flg * sum;
public class Solution {
public int StrToInt(String str) {
if (str == null || str.length() == 0){
return 0;
}
char[] chs = str.toCharArray();
int flg = 1;
int sum = 0;
if (chs[0] == '-'){
flg = -1;
chs[0] = '0';
}else if (chs[0] == '+'){
flg = 1;
chs[0] = '0';
}
for (int i = 0; i < str.length(); i++) {
if (chs[i] < '0' || chs[i] > '9'){
sum = 0;
break;
}
sum = sum * 10 + chs[i] - '0';
}
return flg*sum;
}
}