美文网首页
面试题67(剑指offer)--把字符串转换成整数

面试题67(剑指offer)--把字符串转换成整数

作者: Tiramisu_b630 | 来源:发表于2019-08-15 15:38 被阅读0次

    题目:

    将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。

    思路:

    主要是一些转换的细节,比如+,-号只能在第一位,而且只有+,-号的不是数字,含有0-9以及正负号以外的也不能转成整数。

    代码:

        public static int strToInt(String str) {
            if (str==null||str.length()==0){
                return 0;
            }
            char[] chars = str.toCharArray();
            int length = chars.length;
            int res=0;
            boolean flag=false;//标识第一位是否是+号或者-号
            if ('+'==chars[0]||'-'==chars[0]){
                flag=true;
            }else if (chars[0]>='0'&&chars[0]<='9'){
                res=chars[0]-48;
            }else {
                return 0;
            }
            for (int i = 1; i < length; i++) {
                if (chars[i]>='0'&&chars[i]<='9'){
                    res=res*10+chars[i]-48;
                }else {
                    return 0;
                }
            }
            if (flag&&length==1){
                return 0;//只有+,-号没有数字转换失败
            }
            if (flag&&chars[0]=='-'){//第一位是-号,返回负数
               return -res;
            } 
            return res;
        }
    

    相关文章

      网友评论

          本文标题:面试题67(剑指offer)--把字符串转换成整数

          本文链接:https://www.haomeiwen.com/subject/vcvzjctx.html