2011-07-03 7 views
12

BigIntegerのインスタンスを想像して、インスタンスを作成した後に初期化する方法はありますか?例えばインスタントを作成した後にBigIntegerを初期化する方法(コンストラクタは呼び出せません)

BigInteger t = new BigInteger(); 

tに値を配置する方法は?

コンストラクタを呼び出すことができない場合、オブジェクトに値を入れるために何ができるのですか?

+3

のような何かをしました。すべての標準クラスは、http://download.oracle.com/javase/6/docs/api/に記載されています。 BigIntegerのドキュメントは次のとおりです:http://download.oracle.com/javase/6/docs/api/java/math/BigInteger.html –

答えて

9

他のオブジェクト配列と同じように、BigInteger配列内の項目を初期化するときに特に混乱していることは100%確信していません。例えば、

BigInteger t2 [] = new BigInteger[2]; 

    t2[0] = new BigInteger("2"); 
    t2[1] = BigInteger.ZERO; // ZERO, ONE, and TEN are defined by constants 

    // or 

    BigInteger[] t3 = {new BigInteger("2"), BigInteger.ZERO}; 

編集1:
ああ、今私はあなたの問題を理解して:あなたはBigIntegerのインスタンスを作成したいと、後でその値を設定します。答えは文字列と同じです:はありません。文字列のようなBigIntegerは不変であり、一度作成すると変更できないためです。このため、クラスには「セッター」メソッドはありません。 BigInteger 変数の値を変更する方法は、新しいBigIntegerインスタンスに設定することです。ここ

+0

大丈夫、 BigIntegerにどのように価値が入れられたのですか – CoolEulerProject

+0

質問が修正されました – CoolEulerProject

+0

@CoolEulerProject:上記の私の答えで修正(** Edit 1 **)をご覧ください。 –

5

Long(または通常の整数)をBigIntegerに変換するには、静的ファクトリメソッドvalueOfを使用します。 BigInteger.valueOf(<i>someInteger</i>)コールは、指定した整数値を保持する新しいBigIntegerオブジェクトを返します。あなたは同じことを得るために新しいBigInteger("" + <i>someInteger</i>)を使うこともできますが、これは大変です。

+0

ありがとうございますが、文字列を使用してBigIntegerの値を置き換える方法 – CoolEulerProject

+1

BigIntegerにはコンストラクタがあります数値の文字列表現を受け取り、BigIntegerオブジェクトを作成します。 – ncmathsadist

+3

ドキュメントをお読みください。最初の文は次のとおりです。*不変の任意精度整数*。 BigIntegerは不変です。作成後、これ以上変更することはできません。別のものを作りなさい。 –

2

は、いくつかの例は以下のとおりです。

BigInteger t = BigInteger.valueOf(23); 
    int i = 66; 
    t = BigInteger.valueOf(i); 
    t = BigInteger.ZERO 
0

私はそのドキュメントを読んで、クラスを使用する方法については、この

//initialize with zero 
BigInteger t = BigInteger.ZERO; 

//if i is any value that is to be assigned 
t=t.add(BigInteger.valueOf(i)); 
関連する問題