把字符串转换成整数
把字符串转换成整数
http://www.nowcoder.com/questionTerminal/1277c681251b4372bdef344468e4f26e
为防止溢出,把符号位和值位设为long,在求值的过程中如果long型超过了Integer.MAX,或者小于Integer.MIN返回0即可,否则强制类型转换int型返回。
public class Solution { public int StrToInt(String str) { if(str==null||str.length()==0)return 0; long flag=1; long sum=0; for(int i=0;i<str.length();i++){ if(i==0 && str.charAt(i)=='+'){flag=1;continue;} if(i==0 && str.charAt(i)=='-'){flag=-1;continue;} if((str.charAt(i)-'0')>=10||(str.charAt(i)-'0')<0) return 0; else{ if(flag*(sum*10+str.charAt(i)-'0')>Integer.MAX_VALUE||flag*(sum*10+str.charAt(i)-'0')<Integer.MIN_VALUE){ return 0;} sum = sum*10+(str.charAt(i)-'0'); } } return (int)(sum*flag); } }