首页 > 编程语言 > 详细

java 对String 加法计算

时间:2015-08-13 02:08:22      阅读:242      评论:0      收藏:0      [点我收藏+]
// 对两个字符串,不使用long,int等类型计算
 @Test
    public void jia(){
        String ax = "9234562343465434567";
        String bx = "1234567234563246754324567";

        char [] axArrs = ax.toCharArray();

        char [] bxArrs = bx.toCharArray();

        char [] tMax = axArrs.length> bxArrs.length?axArrs:bxArrs;//max
        char [] tMin = axArrs.length> bxArrs.length?bxArrs:axArrs;//min

        int len  = tMax.length - tMin.length;
        char [] tArrAppend = new char[len];
        char [] tMin2 = new char[tMin.length];

        System.arraycopy(tMax, 0, tArrAppend, 0, len);
        System.arraycopy(tMax, len, tMin2, 0, tMin2.length);


        int [] tMin3 = new int[tMin.length];
        boolean flag = false;
        for (int i=tMin.length-1;i>-1;i--){
            int count = Character.getNumericValue(tMin2[i])+Character.getNumericValue(tMin[i]) + (flag?1:0);
            int b1 = count;
            flag = count>9;
            if (flag){
                b1 = count % 10;
            }
            tMin3[i]= b1;
        }

        int [] t = new int[tArrAppend.length];
        for (int i=tArrAppend.length-1;i>-1;i--){
            int count = Character.getNumericValue(tArrAppend[i])+ (flag?1:0);
            int b1 = count;
            flag = count>9;
            if (flag){
                b1 = count % 10;
            }
            t[i] = b1;
        }

        int [] result = new int[tMax.length+ (flag?1:0)];
        if (flag){
            result[0] = 1;
        }
        System.arraycopy(t,0,result,(flag?1:0),t.length);
        System.arraycopy(tMin3,0,result,t.length+(flag?1:0),tMin3.length);

        System.out.println(ax+"\t+\t" +bx+ "\t=\t"+ Arrays.toString(result).replaceAll("[\\[,\\]\\s*]",""));
    }

?

java 对String 加法计算

原文:http://walker-v5.iteye.com/blog/2234718

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!