把字符串转换成整数

把字符串转换成整数

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

比较冗长,但是要可读性强就可以了

public int StrToInt(String str) {
    if(str==null || str.length()==0){
        return 0;
    }
    char [] chars=str.toCharArray();
    int [] nums=new int[chars.length];
    int res=0;
    int isSymbol=0;
    for(int i=0;i<chars.length;i++){
        int tmp=chars[i]-'0';
        if(i==0){
            if(chars[i]=='+'){
                isSymbol=1;
            } else if(chars[i]=='-'){
                isSymbol=-1;
            } else if(tmp<=9 && tmp>=0  ){
                nums[i]=tmp;
            } else{
                res=0;
                return res;
            }
        }else {
            if(tmp<=9 && tmp>=0){
                    nums[i]=tmp;
                }
            }else{
                res=0;
                return res;
            }
        }
    }
    // 求和方式1
    if(isSymbol==0){
        for(int i=nums.length-1;i>=0;i--){
            res+=nums[i]*Math.pow(10,nums.length-1-i);
        }
    }else{
        for(int i=nums.length-1;i>=1;i--){
            res+=nums[i]*Math.pow(10,nums.length-1-i);
        }
    }
    //求和方式2 
    if(isSymbol==0){
        for(int i=0;i<nums.length;i++){
            res=res*10+nums[i];
            if(res>Integer.MAX_VALUE){
                return 0;
            }
        }
    }else{
        for(int i=1;i<nums.length;i++){
            res=res*10+nums[i];
            if(res>Integer.MAX_VALUE){
                return 0;
            }
        }
    }
    if(isSymbol==-1){
        res=-res;
    }
    return res;
    }
全部评论

相关推荐

点赞 评论 收藏
分享
07-18 18:05
门头沟学院 Java
挂了&nbsp;正式批求捞
投递滴滴等公司9个岗位
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
07-02 10:39
门头沟学院 Java
Steven267:说点真实的,都要秋招了,还没有实习,早干嘛去了,本来学历就差,现在知道急了,而且你这个简历完全可以写成一页,劣势太大了,建议转测试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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