题目:将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
知识点:Integer.valueOf(string)的作用:将一个字符串转换成一个整数,但是string不符合数字要求时返回0
注意:正负号的考虑,负数用一个标记记录,返回sum时判断即可
最好加一个全部变量,记录是否为合法字符
str的长度为0,或str== null 为非法输入
private static Boolean flag = true;
public int StrToInt(String str) {
if(str.length() == 0 || str ==null ) {
flag = false;
return 0;
}
char[] c = str.toCharArray();
boolean flag_fu = false;
int sum=0;
for(int i=0;i<c.length;i++){
if(i==0&&c[i] == '+'){continue;}
if(i==0&&c[i] == '-'){
flag_fu = true;
continue;
}
if(c[i]<'0' || c[i]>'9'){
flag = false;
return 0;
}else{
sum = sum*10+(c[i]-'0');
}
}
return flag_fu==true?sum*(-1):sum;
}
收获:
如果是0-9的字符,用c-'0'得到对应的int型的数字