[编程题]把字符串转换成整数

把字符串转换成整数

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

//参考jDK1.5的Integer.parseInt()源码
public class Solution {
    public int StrToInt(String str) {
        //如果字符为空字符串
        if(str==null){
            return 0;
        }
        //字符串长度
        int length=str.length();
        //字符串转整数值的大小限制
        int limit=-Integer.MAX_VALUE;
        //定义变量存储每一位的字符转成的数值
        int digit=0;
        //返回的结果
        int result=0;
        int mulmin=0;
        //标志位判断该字符串是不是负数
        boolean negative=false;
        //定义指向字符串中字符的指针
        int index=0;
        //如果字符中有字符
        if(length>0){
            //判断第一个字符是不是'+'或者'-'
            char firstChar=str.charAt(0);
            if(firstChar<'0'){
                if(firstChar=='-'){
                    negative=true;
                    limit=Integer.MIN_VALUE;
                }else if(firstChar!='+'){  //不为'+'
                    return 0;
                }
                if(length==1){  //第一个字符既不是'+'和'-'
                    return 0;
                }
                //如果字符串第一个字符为'+'或者'-'
                index++;
            }
            mulmin=limit/10;
            //移动指针继续判断后面的字符
            while(index<length){
                digit=str.charAt(index++)-'0';
                //判断digit是不是数字
                if(digit<0||digit>9){
                    return 0;
                }
                //判断溢出
                if(result<mulmin){
                    return 0;
                }
                result*=10;
                if(result<limit+digit){
                    return 0;
                }
                result-=digit;
            }
        }else{
            return 0;
        }
        return negative? result:-result;
    }
}
全部评论

相关推荐

一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务