java中biginteger可通过字符串构造,最常用new biginteger(string val)方法,要求字符串为纯十进制数字(可带单个开头负号)、无空格逗号前导零(除"0"外);支持指定进制(2–36),需trim()预处理并try-catch异常。

Java 中 BigInteger 可以直接通过字符串构造超大整数,最常用的方式是使用带 String 参数的构造方法:new BigInteger(String val)。
基本用法:直接传入十进制数字字符串
字符串必须只包含可解析的十进制数字(可带正负号),不能有空格、逗号、前导零(除非值就是 0)或非数字字符。
-
new BigInteger("123456789012345678901234567890")✅ -
new BigInteger("-999999999999999999999999999999")✅ -
new BigInteger("0")✅ -
new BigInteger(" 123 ")❌(含空格,抛NumberFormatException) -
new BigInteger("12,345")❌(含逗号) -
new BigInteger("0123")❌(除非是 "0",否则前导零会报错)
指定进制:支持二进制、十六进制等其他进制字符串
第二个构造方法允许指定进制(radix),例如:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
new BigInteger("1010", 2)→ 十进制 10 -
new BigInteger("FF", 16)→ 十进制 255 -
new BigInteger("-1A", 16)→ 十进制 -26 - 进制范围必须是 2–36(字母 a–z 或 A–Z 表示 10–35)
注意事项和常见坑
构造时容易忽略的细节:
- 字符串不能为空(
"")或全空白,否则抛异常 - 仅支持 ASCII 数字和符号,不支持全角字符或 Unicode 数字
- 负号
-必须在开头,且只能有一个;+符号不被接受(如"+123"会报错) - 如果字符串来自用户输入或文件,建议先用
String.trim()清理首尾空格 - 若需容错处理,应包裹在 try-catch 中捕获
NumberFormatException
推荐写法(安全构造)
实际开发中建议这样写:
String input = " 999999999999999999999999999999 ";
try {
BigInteger big = new BigInteger(input.trim());
} catch (NumberFormatException e) {
// 处理非法格式
}Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










