当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java String转BigInteger用法及代码示例


在Java中,BigInteger类是的一部分java.math包,旨在处理任意精度整数。与 int 或 long 等具有固定大小限制的基本数据类型不同,BigInteger 可以表示任何大小的整数,仅受可用内存的限制。

字符串到 BigInteger 转换的示例

给定一个字符串,并将其转换为BigInteger 数字。

Example 1: Input String: “12345678901234578901201234567890”
Output BigInteger: 12345678901234578901201234567890

Example 2: Hexadecimal String: “1b4a5c6d7e8f”
Output BigInteger: 30006192209551

如何在 Java 中将字符串转换为BigInteger?

Java中有一些将String转换为BigInteger的方法,如下所述:

  1. 使用BigInteger toString()构造函数
  2. 使用String valueOf()方法

1. 使用构造函数将字符串转换为BigInteger

下面是上述方法的实现:

Java


// Java Program to implement 
// Convert String to BigInteger 
// Using BigInteger Constructor 
  
import java.math.BigInteger; 
  
// Driver Class 
class GFG { 
      // main function 
    public static void main (String[] args) { 
          // String Created 
        String numberStr = "12345678901234578901201234567890"; 
          
          // Converted BigInteger 
          BigInteger bigInt = new BigInteger(numberStr); 
  
        System.out.println("String: " + numberStr); 
        System.out.println("BigInteger: " + bigInt); 
    } 
} 
输出
String: 12345678901234578901201234567890
BigInteger: 12345678901234578901201234567890


2. 使用BigInteger.valueOf()方法进行转换

下面是 BigInteger.valueOf() 方法的实现:

Java


// Java Program to implement 
// Convert String to BigInteger 
// Using BigInteger Constructor 
import java.io.*; 
import java.math.BigInteger; 
  
// Driver Class 
class GFG { 
      // main function 
    public static void main(String[] args) 
    { 
          // String Declared 
        String numberStr = "987654323245129963"; 
        
          // Converted to BigInteger using valueOf() 
          BigInteger bigInt = BigInteger.valueOf(Long.parseLong(numberStr)); 
  
          // Result Displayed 
        System.out.println("String: " + numberStr); 
        System.out.println("BigInteger: " + bigInt); 
    } 
}
输出
String: 987654323245129963
BigInteger: 987654323245129963


Java 中的非十进制整数字符串为 BigInteger

与十进制数字(以 10 为基数的数字)类似,我们可以转换其他数字格式,例如 Base-2(二进制)、Base-8(八进制)、Base-16(十六进制)等。

下面是解释执行此转换的方法的实现:

Java


// Java Program to implement Convert  
// Non Decimal String to BigInteger 
import java.io.*; 
import java.math.BigInteger; 
  
// Driver Class 
class GFG { 
      // main function 
    public static void main(String[] args) 
    { 
        // Replace this string with your Hexadecimal bigInteger 
        String hexString = "1b4a5c6d7e8f"; 
  
        // Convert Hexadecimal string to BigInteger 
        BigInteger bigInt 
            = new BigInteger(hexString, 16); 
  
        // Print the result 
        System.out.println("Hexadecimal String: " + hexString); 
        System.out.println("Equivalent BigInteger: " + bigInt); 
    } 
}
输出
Hexadecimal String: 1b4a5c6d7e8f
Equivalent BigInteger: 30006192209551


上述程序的解释:

在上面的示例中,我们使用 BigInteger 构造函数来转换字符串 hexString,其中包含以 16 为基数的字符串编号。它解释了这样一个事实:如果我们想要以 x 为基数转换字符串 str,那么我们可以使用以下语法BigInteger res = new BigInteger( str, x );



相关用法


注:本文由纯净天空筛选整理自m0hitkirange大神的英文原创作品 Convert a String to a BigInteger in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。