如何将18位数字字符串转换为BigInteger?

任何人都可以帮助我将18位数字字符串数字转换为java中的BigInteger

ie;字符串"0x9999999999999999"应显示为0x9999999999999999数值。

您可以在BigInteger构造函数中指定基数。

 BigInteger bi = new BigInteger("9999999999999999", 16); String s = bi.toString(16); 

如果String始终以“0x”开头并且是hex的:

  String str = "0x9999999999999999"; BigInteger number = new BigInteger(str.substring(2)); 

更好,检查它是否以“0x”开头

  String str = "0x9999999999999999"; BigInteger number; if (str.startsWith("0x")) { number = new BigInteger(str.substring(2), 16); } else { // Error handling: throw NumberFormatException or something similar // or try as decimal: number = new BigInteger(str); } 

要将其输出为hex或转换为hex表示forms:

  System.out.printf("0x%x%n", number); // or String hex = String.format("0x%x", number); 

你期望这个数字是hex的,因为这通常意味着什么?

将纯字符串转换为BigInteger

 BigInteger bi = new BigInteger(string); String text = bi.toString(); 

将hex数字作为文本转换为BigInteger并返回。

 if(string.startsWith("0x")) { BigInteger bi = new BigInteger(string.sustring(2),16); String text = "0x" + bi.toString(16); } 
 BigInteger bigInt = new BigInteger("9999999999999999", 16);