java实现超大数字的加法

package com.gwsp.authority.core.test;

import java.util.ArrayList;
import java.util.List;

public class Test {

    public static void main(String[] args) {
        String num1 = "2374623756873247832672356237462375687324783267235642387538475683476587346573467563475345735427354237462375687324783267235642387538475683476587346573467563475345735427354872365734675637465734657346756347567346287567832465327654735635876387456387245672346573487236573467563742374623756873247832672356423875384756834765873465734675634753457354273548723657346756374657346573467563475673462875678324653276547356358763874563872456723465734657346573467563475673462875678324653276547356358763874563872456723465734423875384756834765873465734675634753457354273548723657346756374657346573467563475673462875678324653276547356358763874563872456723465734";
        String num2 = "23745237237462375687324783267235642387538475683476587346573467563475345735427354872365734675637465734657346756347567346287567832465327654735635876387456387245672346573446238723746237568732423746237568732478326723564238753847568347658734657346756347534573542735487236573467563746573465734675634756734628756783246532765473563587638745638724567234657347832672356423875384756834765873465734675634753457354273548723652374623756873247832672356423875384756834765873465734675634753457354273548723657346756374657346573467563475673462875678324653276547356358763874563872456723465734734675637465734657346756347567346287567832465327654735635876387456387245672346573456873456357147236482340123450132543712648732567348156348765734625731804573465736475637456734567346563746534756734265763427563476573456734653475683724568732456738456347563428757";
        String result = add(num1, num2);
        System.out.println( result );
    }

    public static String add( String num1,String num2 ){
        String[] array1 = num1.split("");
        String[] array2 = num2.split("");
        String[] array_long = array1;
        String[] array_short = array2;
        if( array_short.length > array_long.length ){
            array_long = array2;
            array_short = array1;
        }
        reverseArray( array_long );
        reverseArray( array_short );
        // 进位
        int carry = 0;
        List resultList = new ArrayList<>();
        for( int i=0;i

结果:023745237237462375687324783267235642387538475683476587346573467563475345735427354872365734675637465734657346756347567346287567832465327654735635876387456387245672346573446238723746237568732426120861325605726159395920476216223255672442001892989143886010257019322833810041031039092308893088913097132421953540050482175153012039271115332985298034798132693568099711296241119432472231608123081431982320803641841381188980029359392749635289059602096221958244071339341029477050258510330602106221080081222141131492112446933298151308216333032598202000204703115138531910445924286941408197551315790387933894112706331220851440289188793389392982449855019862919135222251781526732904503595246214687322589267178383156442732913183531608091466480208219193829911005458224693320121192103307733326903236939449135059306752231080927496331302328804286894491

你可能感兴趣的:(算法,java8,java,算法)