题目:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 。
输入描述:输入一个字符串,包括数字字母符号,可以为空。
输出描述:如果是合法的数值表达则返回该数字,否则返回0。
思路:①判断非法字符串;②把字符转化为数字:sum = sum*10 + ch[i] - '0' + 0
public int StrToInt(String str) {
boolean g_InvalidValue = false;
if(str == "0" || str.isEmpty()){
g_InvalidValue = true;
return 0;
}
char[] ch = str.toCharArray();
int i = 0;
int sum = 0;
boolean isPosition = false;
if(ch[i] == '-'){
isPosition = true;
i++;
}
else if(ch[i] == '+'){
i++;
}
int length = ch.length;
for(;i<length;i++){
if(ch[i] <= '9' && ch[i] >= '1'){
sum = sum*10 + ch[i] - '0' + 0;
}
else{
g_InvalidValue = true;
return 0;
}
}
if(isPosition){
sum = -sum;
}
return sum;
}