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

把字符串转换成整数(atoi)

https://www.nowcoder.com/practice/d11471c3bf2d40f38b66bb12785df47f

public int StrToInt (String s) {
        //判断空
        if(s.length()==0) return 0;
        int index=0;//记录下标的一个指针
        //去掉前导空格
        for (int i = 0; i < s.length(); i++) {
            if(s.charAt(i)==' '){
                index++;//后移
            }else{
                break;
            }
        }
        System.out.println("index:"+index);
        //越过前导空格后什么也没有了
        if(index == s.length()) return 0;
        //判断正负号
        int flag=1;
        if(s.charAt(index)=='-'){
            flag=-1;//变负数
            index++;
        }else if(s.charAt(index)=='+'){//变正数
            index++;
        }
        long res=0;//存最终结果的
        for (int i = index; i < s.length(); i++) {
            if(s.charAt(i)>='0' &&  s.charAt(i)<='9'){
                res= res*10 + (s.charAt(i)-'0');
                //System.out.println("res="+res);
                // 半路已经溢出了,所以要半路处理,放在循环中
                //处理越界的数,分正负数,如果把以下代码放在循环外
                //则正数的直接会溢出变成负数,数据就错了
                if(flag>0 && res>Integer.MAX_VALUE){
                    return Integer.MAX_VALUE;
                }
                if(flag<0 && res*(-1)<Integer.MIN_VALUE){
                    return Integer.MIN_VALUE;
                }
            }else{
                break;
            }
        }
        return (int)(flag*res) ;
    }

全部评论

相关推荐

珩珺:那些经历都太大太空了,实习的情况不了解,大创项目连名字、背景、目的及意义都没体现出来;地摊经济更是看完连卖的什么产品都不知道,项目成果直接写营收多少都更直观真实一点;后面那个校文体部的更是工作内容是组织活动整理流程,成果变成了当志愿者,而且你们学校本科学生会大一入学就直接当部长吗,志愿里面还提到了疫情防控,全面解封是22年12月的事情,可能时间上也有冲突。可能你花了钱人家就用AI给你随便写了点内容改了一下,没什么体现个性化的点
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务