题目:
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
思路:
将字符串转化为字符数组,然后将通过num = num*10 + 字符数组[i] 转化为数字。
注意的要点:判断非法输入输出0和正常输入0的区别。判断正负号。
public class Solution {
public boolean isInValid; //判断是是否是非法输入标志位
public int StrToInt(String str) {
if(str == null||str.equals("")){
isInValid = true;
return ;
}
char [] str2char = str.toCharArray();
int num = ;
boolean isFu = false;
for(int i = ;i < str2char.length;++i){
if(i == && str2char[i] == '+'){
continue;
}else if(i == && str2char[i] == '-'){
isFu = true;
continue;
}
if(str2char[i] <= '9' && str2char[i] >= '0'){
if(isFu){
num = num * + ('0' - str2char[i]);
}else{
num = num * + (str2char[i] - '0');
}
}else{
num = ;
isInValid = true;
break;
}
}
return num;
}
}