1. 概述
在本教程中,我们将演示如何将 String 转换为 BigInteger 。 BigInteger 通常用于处理非常大的数值,这些数值通常是任意算术计算的结果。
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 上获取。