把字符串轉換成整數

注意溢出的處理

public class Solution {
    int solve(char c){
        if(c>'9')
            return -1;
        if(c<'0')
            return -1;
        return c-'0';
    }
    public int StrToInt(String str) {
        int maxn1=2147483647;
        int maxn2=-2147483648;
        char []s=str.toCharArray();
        int flag=1;
        int l=s.length;
        int sum=0;
        for(int i=0;i<l;i++){
            if(i==0){
                if(s[i]=='-')
                {
                    flag=-1;
                    continue;
                }
                if(s[i]=='+'){
                    continue;
                }  
            }
            int m=solve(s[i]);
            if(m==-1)
                return 0;
            if(flag==1)
            {
                if((maxn1-m)/10<sum)///溢出
                    return 0;
              sum=sum*10+m;
            }
            else
            {
                if((maxn2+m)/10>sum)///溢出
                    return 0;
                sum=sum*10-m;
            }
             
        }
        return sum;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章