题目描述
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
public class Solution {
public int StrToInt(String str) {
//如果是空,返回0
if (null == str || str.length() == 0) {
return 0;
}
int num =0;
int flag = 1;
//遍历每个字符,如果是非法字符,直接返回0,否则作为整数计算
for (int i = 0; i < str.length(); i++) {
char vi = str.charAt(i);
if (i == 0 && (vi == '+' || vi == '-')) {
flag = (vi == '+') ? 1 : -1;
} else if (vi <'0' || vi>'9') {
return 0;
} else {
num = 10 * num + (vi - '0');
}
}
return flag*num;
}
}
网友评论