要求:
将一个字符串转换成一个整数(实现Integer.valueOf(String)的功能,但是String不符合数字要求时返回0),要求不能使用字符串转换成整数的库函数。数值为0或者字符串不是一个合法的数值则返回0。
代码:
public class Main {
public static int StrToInt (String str) {
if (str.length() == 0)
return 0;
char[] chars = str.toCharArray();
//判断是否存在符号位
int flag = 0;
if (chars[0] == '+')
flag = 1;
else if (chars[0] == '-')
flag = 2;
int start = flag > 0 ? 1 : 0;
int res = 0;
for (int i = start; i < chars.length; i++) {
if (Character.isDigit(chars[i])) {
//调用Character.isDigit(char)方法判断是否是数字,是返回True,否则返回False
int temp = chars[i] - '0';
res = res * 10 + temp;
} else {
return 0;
}
}
return flag != 2 ? res : -res;
}
}