将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
几个特殊情况
- 数据上下 溢出
- 空字符串
- 只有正负号
- 有无正负号
- 错误标志输出
boolean flag = false;
public int StrToInt(String str) {
if(str ==null ||str.length()==0){
flag = true;
return 0;
}
char [] strs = str.toCharArray();
boolean minus = false;
int start = 0;
if(strs[start]=='-'){
minus = true;
start++;
}else if(strs[start]=='+'){
start++;
}
for(int i=start;i<str.length();i++){
if(strs[i]<'0' || strs[i]>'9'){
flag = true;
return 0;
}
}
int num = strToInt(strs,start);
if(minus)
num=-num;
return num;
}
private int strToInt(char[] strs, int start) {
int n = 0;
for(int i=start;i<strs.length;i++){
n=n*10+strs[i]-'0';
}
return n;
}