String 转int 两种方法,如果不可以使用long型
if(res.charAt(0)=='+'){ for (int i = 1; i <res.length() ; i++) { digit=Character.getNumericValue(res.charAt(i)); if(value<=Integer.MAX_VALUE/10) value=value*10+digit; else{ value=Integer.MAX_VALUE; System.out.println(Integer.MAX_VALUE); break; } } } else if(res.charAt(0)=='-'){ for (int i = 1; i <res.length() ; i++) { digit=Character.getNumericValue(res.charAt(i)); if(-value>=-Integer.MIN_VALUE/10) if(-value>-Integer.MIN_VALUE/10) { value = value * 10 + digit; } else{ if(digit<=8) { value = value * 10 + digit; } else{ value=Integer.MIN_VALUE; } } else{ value=Integer.MIN_VALUE; System.out.println(Integer.MIN_VALUE); break; } } value=-value; }
如果可以使用long型
long ans;
for (int i = 1; i <res.length() ; i++){
c=res.charAt(i);
ans = ans * 10 + c - '0';
ans = sign == 1 ? Math.min(ans, (long) Integer.MAX_VALUE) : Math.min(ans, -(long) Integer.MIN_VALUE);
}
return (int)ans;