把字符串转换成整数
把字符串转换成整数
http://www.nowcoder.com/questionTerminal/1277c681251b4372bdef344468e4f26e
参考了讨论里的高分答案和下边的一个比较简洁的答案
public int StrToInt(String str) {
if(str == null ||str.length()==0 || str.trim().equals("")) return 0;
char[] chars = str.trim().toCharArray();
int res=0,flag=1,start=0,tmp=0;
if(chars[0] == '-') {
flag = -1;
start = 1;
}
if(chars[0] == '+') start=1;
for(int i =start;i < chars.length;i++){
if(chars[i]>'9'||chars[i]<'0')
return 0;
//当前个位数字
int dight = (int)(chars[i]-'0');
tmp = res*10+dight;
//判断正数溢出
if(flag ==1 && res>Integer.MAX_VALUE/10) return 0;
if(flag ==1 && res*10>Integer.MAX_VALUE - dight) return 0;
//判断负数溢出
if(flag == -1 && res*flag < Integer.MIN_VALUE/10) return 0;
if(flag == -1 && res*10*flag < Integer.MIN_VALUE + dight) return 0;
res = tmp;
}
return flag* res;
}
查看7道真题和解析