题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
public class 把字符串转成整数 {
public int StrToInt(String str) {
if(str==null||str.length()==0||str.equals("-2147483649")||str.equals("2147483648"))return 0;
int flag=0;//0代表没有符号,1代表正数,-1,代表负数
int i=0;
char[] c=str.toCharArray();
if(c[0]=='-') {flag=-1;i=1;}
if(c[0]=='+') {flag=1;i=1;}
int n=0;
for(;i<c.length;i++) {
if(c[i]>57||c[i]<48) return 0;
n=n*10+c[i]-48;
}
// if(n>Integer.MAX_VALUE) return 0;
if(flag==-1) return -n<Integer.MIN_VALUE?0:-n;
return n>Integer.MAX_VALUE?0:n;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}