1. 概述

在本教程中,我们将演示如何将 String 转换为 BigIntegerBigInteger 通常用于处理非常大的数值,这些数值通常是任意算术计算的结果。

2. 转换十进制(基数为 10)整数字符串

要将十进制 字符串 转换为 BigInteger ,我们将 使用 BigInteger(String value) 构造函数

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

3. 转换非十进制整数字符串

当使用默认的 BigInteger(String value) 构造函数 转换非十进制 String (如十六进制数)时, 我们可能会得到 NumberFormatException

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

该异常可以通过两种方式处理。

一种方法是 使用 BigInteger(String value, int radix) 构造函数

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

在本例中,我们将十六进制转换为十进制的基数或基数指定为 16。

另一种方法是首先 非十进制 String 转换为 字节 数组,然后使用 BigIntenger(byte [] bytes) 构造函数

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

这给了我们正确的结果,因为 BigIntenger(byte [] bytes) 构造函数将包含补码二进制表示形式的 字节 数组转换为 BigInteger

4。结论

在本文中,我们研究了在 Java 中将 String 转换为 BigIntger 的 几种方法。

与往常一样,本教程中使用的所有代码示例都可以在 GitHub 上获取。