1. 概要

このチュートリアルでは、StringBigIntegerに変換する方法を示します。 BigInteger は、通常、任意の算術計算の結果である非常に大きな数値を処理するために一般的に使用されます。

2. 10進数(基数10)の整数文字列の変換

10進数のStringBigIntegerに変換するには、 BigInteger(String value)コンストラクターを使用します。

String inputString = "878";
BigInteger result = new BigInteger(inputString);
assertEquals("878", result.toString());

3. 10進数以外の整数文字列の変換

デフォルトのBigInteger(String value)コンストラクターを使用して、16進数のような非10進数の String を変換すると、 ] NumberFormatException

String inputString = "290f98";
new BigInteger(inputString);

この例外は2つの方法で処理できます。

1つの方法は、 BigInteger(String value、int radix)コンストラクターを使用することです。

String inputString = "290f98";
BigInteger result = new BigInteger(inputString, 16);
assertEquals("2690968", result.toString());

この場合、16進数を10進数に変換するために、基数、、または基数を16として指定しています。

もう1つの方法は、最初に10進数以外の文字列をバイト配列に変換してから、BigIntenger(byte [] bytes)コンストラクターを使用することです。

byte[] inputStringBytes = inputString.getBytes();
BigInteger result = new BigInteger(inputStringBytes);
assertEquals("290f98", new String(result.toByteArray()));

BigIntenger(byte [] bytes)コンストラクターは、2の補数のバイナリ表現を含む byte配列をBigIntegerに変換するため、これにより正しい結果が得られます。

4. 結論

この記事では、JavaでStringBigIntgerに変換するいくつかの方法について説明しました。

いつものように、このチュートリアルで使用されるすべてのコードサンプルは、GitHubから入手できます。