-
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
public int StrToInt(String str) {
if(str.equals(""))
return 0;
if(str=="-2147483648")
return -2147483648;
if(str.charAt(0)=='+'||str.charAt(0)=='-') {
for (int i = 1; i < str.length(); i++) {
if(str.charAt(i)>'9'||str.charAt(i)<'0')
return 0;
}
int rs=0;
for (int i = 0; i < str.length()-1; i++) {
rs+=(str.charAt(i+1)-48)*(Math.pow(10, str.length()-(i+2)));
}
if(str.charAt(0)=='-') {
return -rs;
}
return rs;
}else if(str.charAt(0)<='9'&&str.charAt(0)>='0'){//第一个字符为数字
for (int i = 1; i < str.length(); i++) {
if(str.charAt(i)>'9'||str.charAt(i)<'0')
return 0;
}
int rs=0;
for (int i = 0; i < str.length(); i++) {
rs+=(str.charAt(i)-48)*(Math.pow(10, str.length()-(i+1)));
}
return rs;
}else {//第一个字符为其他
return 0;
}
}