Java面试题 - 字符串转换成整数 不使用JavaAPI

package nk._49_把字符串转换成整数;

/**
 * create by on 2019/3/13.
 */
public class Test1 {
    //把字符串转换成整数  不使用javaAPI
    public static void main(String[] args) throws Exception {
        String str1 = "";
        String str2 = null;
        String str3 = "1a33";
        String str4 = "21474836";
        String str5 = "+21474836";
        String str6 = "-21474836";
        String str7 = 2147483647+"";
        String str8 = 2147483647+1+"";
//        System.out.println(str1+" : "+transform(str1));
//        System.out.println(str2+" : "+transform(str2));
//        System.out.println(str3+" : "+transform(str3));
        System.out.println(str4+" : "+transform(str4));
        System.out.println(str5+" : "+transform(str5));
        System.out.println(str6+" : "+transform(str6));
        System.out.println("Integer.MAX_VALUE : "+Integer.MAX_VALUE);
        System.out.println(str7+" : "+transform(str7));
        System.out.println(str8+" : "+transform(str8));
    }

    private static int transform(String str) throws Exception {
        if(str==null||"".equals(str)) throw new Exception("输入不能为空");
        char[] cs = str.toCharArray();
        int res = 0;
        int i ;
        if(cs[0]=='+'||cs[0]=='-')  i=1;
        else i=0;
        for (; i < cs.length; i++) {
            if(cs[i]<48||cs[i]>57){
                throw new Exception("输入异常");
            }
            res += (cs[i] - 48) * pow(10, cs.length - i-1);
        }
        if(cs[0]=='+'||cs[0]=='-'){ res*=cs[0]=='+'?1:-1;}
        return res;
    }

    private static int pow(int num, int n) {
        int res = 1;
        while (n-- > 0) {
            res *= num;
        }
        return res;
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值