题解 | #把字符串转换成整数#

把字符串转换成整数

http://www.nowcoder.com/practice/1277c681251b4372bdef344468e4f26e

就简单的模拟,并没有题解说的数据溢出等问题。利用ASIC码求解。
//ASIC码:数字0是48,char型比int型数字大48
public class Solution {
    public int StrToInt(String str) {
        char[] ch=str.toCharArray();
        int len=str.length();
        if(len==0)return 0;
        int ans=0,m=0;
        for(int i=len-1;i>=0;i--){
            //如果非数字和符号,直接return 0
            if((ch[i]<48||ch[i]>48+9)&&ch[i]!='+'&&ch[i]!='-')return 0;
            //如果是数字,就从低位到高位累加,每次扩大10倍
            if(ch[i]>=48&&ch[i]<=48+9)ans+=(ch[i]-48)*Math.pow(10,m++);
            //System.out.println(ans);
        }
        if(ch[0]=='-')return -ans;//判断符号位
        return ans;
    }
}

全部评论

相关推荐

10-15 03:05
门头沟学院 Java
CADILLAC_:凯文:我的邮箱是死了吗?
点赞 评论 收藏
分享
评论
2
收藏
分享
牛客网
牛客企业服务