思路:首先我们遍历数组,先确定这个字符串是否是一个合法的数字串,如果是一个合法的字符串,那么就在判断其是以 + 或者 - 开头的字符串还是不以 + 或者 - 开头的字符串,然后根据算法将其转化为整型;如果不是合法的字符串则输出 0。
public class Solution {
public int StrToInt(String str) {
if(str == null || str.length() == 0) return 0;
int flag = 0;
for(int i = 0; i < str.length(); ++ i) {
if(i == 0 && (str.charAt(i) == '+' || str.charAt(i) == '-')) { //以 + 或者 - 开头的数字串
flag = 1;
} else if(str.charAt(i) <= '9' && str.charAt(i) >= '0') {//数字串
continue;
} else {//非数字串
flag = 2;
break;
}
}
int ans = 0;
int i = 0;
if(flag == 2) return 0;
else {
if(flag == 0) i = 0;
else if(flag == 1) i = 1;
for( ; i < str.length(); ++ i) {//转化为整型
ans = ans * 10 + (str.charAt(i) - '0');
}
if(flag == 1 && str.charAt(0) == '-') ans = -ans;
}
return ans;
}
} 
京公网安备 11010502036488号