剑指offer-把字符串转换成整数

题目描述

将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
输入一个字符串,包括数字字母符号,可以为空
如果是合法的数值表达则返回该数字,否则返回0
+2147483647      2147483647
1a33     0
    public int StrToInt(String str) {
        if(str==null||str.length()==0||str.equals("0")){
            return 0;
        }
        int i=0;
        boolean isPositive = true;
        if(str.charAt(0)=='+'){
            isPositive =true;
            i++;
        }
        else if(str.charAt(0)=='-'){
            isPositive =false;
            i++;
        }
        int re =0;
        for(;i<str.length();i++){
            char ch =str.charAt(i);
            if(ch<'0'||ch>'9'){
                return 0;
            }
            re = re*10+ch-'0';
        }
        return isPositive?re :-re;
        
    }

 

posted @ 2019-07-31 22:10  月半榨菜  阅读(191)  评论(0编辑  收藏  举报