我如何填补BigInteger?

时间:2014-02-09 21:06:07

标签: java biginteger

我如何填充BigInteger?我认为使用NumberFormat可以做到这一点,但事实并非如此。如果可能的话,我也想了解有关我的代码的任何建议,我相对较新并希望快速改进。

import java.math.BigInteger;
import java.text.NumberFormat;


public final class BigNumber implements Cloneable {

    public BigNumber(BigInteger value) {
        this.value = value;
    }

    BigInteger value=BigInteger.valueOf(0);
    BigNumber(String g) {
        this.value = new BigInteger(g);
    }

    public String ToString(){
        String a=""+value;
        return a;
    }


    public Object CloneNumber() throws CloneNotSupportedException{
        return super.clone();   
    }

    public BigNumber add(BigNumber other) throws CloneNotSupportedException {
        return new BigNumber(value.add(other.value)); 
    }


    public void pad() {
        NumberFormat format=NumberFormat.getInstance();  
        format.setMaximumIntegerDigits(10);
    }

    public static void main(String []args) throws CloneNotSupportedException {
        BigNumber g=new BigNumber("46376937677490009712648124896970078050417018260538");
        BigNumber j=new BigNumber("37107287533902102798797998220837590246510135740250").add(g);
        BigNumber r=new BigNumber("7432498619952474105947423330951305812372661730962991942213363574161572522430563301811072406154908250230675882075393461711719803104210475137780632466768926167069662363382013637841838368417873436172675728112879812849979408065481931592621691275889832738").add(j);
        BigNumber w=new BigNumber("44274228917432520321923589422876796487670272189318474514457360013064390911672168568445887116031532767038648610584302543993961982891759366568675793495162176457141856560629502157223196586755079324193331649063524627419049291014324458138226633479447581789257586771833721766196375159057923972824559883840758203565325359399008402633568948830189458628227828801811993848262820142781941399405675871511700943903539866437282711265382998724078447305319010429358686515506006295864861532075273371959191420517255829").add(r);
        BigNumber t=new BigNumber("71693888707715466499115593487603532921714970056938543700705768266846246214956500764717872944383776045328265410875682844319119063469403785521777929514536123272525000296071075082563815656710885258350721458765761724109764473391106072182652368772236360451742370690585186066044820762120981328786073396941281142660418086830619328460811191061556940512689692519343254517283886419180470492932150586425630494836246722164843507620172791803994469300473295634069115732444386908125794514089057706229429197107928209550376875256787730918625407449698445083303936821261833638482533015468619612434876768129753437594651580386287592878490201521685554828717201219257766954781828337579931036147403568564490955270978647975811672632010043689784255353992093183744149780686098448403098129077791799088218795327364475675590848030870869875513927118545170785441618524243206931503325995940689575653678210707492696653767632623544721069793950679652694742597709739166693763042633987085410526847082990852113994273657341161827603150012716537860736150108085700914993951255702819874600437535829035317434717326932123578154982629742552737307949537597651053059469660676831565743771674018752758890280257173322961917666871381993181104877019027125267680276078003013678680992525463401061632866526362702185404977055856299465806362379931407462559622407448690823117497779236546625724692332281091714191430288197103288597806669760892938638285025333403344130655780161278159218150055618688364684200904702305308117281643048762379196984248725503663878458311487696932154902810424020138335124462181441773470637832994906362596664985876182212252255124867645336772018697169854431241957240991395900895231005882295548255300263520781532296796249481641953868218774760853271322857231104248034561248676970645079952363777424253541129168427686553892620502491032657296723701913275725675285653248258265463092207058596522297988602722583319131263751473419948895347657455011849570145487928898485682772607771372140379887971538298203783031473527721580348144513491373226651381348295438291999181802789165224310273922511228695394095795306640523263253804410005965493915987959363529746152185502371307642255121183693803580388584903416981162220729771861582366784246891579935329619226246795719440126904387710727504810239089552359745723189706772547915061505504953922979530901129967519861880882258753145295840992512038290094077707756721130673970830472448381653387350234084564705807730882959174767140363198008187129011875491310547126581976233310448183862695154563349263665728975634005004284628018351707052783183942588214552122725125032755121603546981200581762165212827652751691296897789322381957343293399464375019078369457658833523998867550616496518477518073816883786109152735792970133762177842752192623401942399639168044983993173312731329241857071473495669166746876346609150359146775049951867143023521962889489010242332511691361962662273267460800591547471830798392868535206946944540724768418225246744171615140364279822733480555562148189714261791034259864720451689398942217982608807685287783646182799346313767754307809363333018982642090108488025216746708832151201858835432238128769527867132961247478246453863699300904931036361976387803962184073572399794223406235393808339651327408011116").add(w);
        BigNumber Y=new BigNumber("66627891981488087797941876876144230030984490851411606618262936828367647447792391803351109890697907148578694408955299065364044742557608365997664579509666024396409905389607120198219976047599490197230297649139826800329731560371200413779037855660850892521673093931987275027546890690370753941304265231501194809377245048795150954100921645863754710598436791786391670211874924319957006419179697775990283006991536871371193661495281130587638027841075444973307840789923115535562561142322423255033685442488917353448899115014406480203690680639606723221932041495354150312888033953605329934036800697771065056663195481234880673210146739058568557934581403627822703280826165707739483275922328459417065250945123252306082291880205877731971983945018088807242966198081119777158542502016545090413245809786882778948721859617721078384350691861554356628840622574736922845095162084960398013400172393067166682355524525280460972253503534226472524250874054075591789781264330331690").add(t);
        Y.pad();
        String q=Y.ToString();
        System.out.print(q);
    }

}

1 个答案:

答案 0 :(得分:0)

试试这个:

String q=Y.ToString();
String l= q.substring(0, Math.min(q.length(), 10)); 

System.out.print(l);