在Java中将BigInteger转换为较短的字符串

| 我正在寻找一种将BigInteger转换为非常短的String(可能最短)的方法。转换必须是可逆的。在这种情况下,转换的安全性并不重要。有人会提出建议或示例说明如何解决该问题吗?
已邀请:
一种简单的方法是使用
BigInteger.toString(Character.MAX_RADIX)
。要反转,请使用以下构造函数:
BigInteger(String val, int radix)
您可以使用Base64编码。请注意,此示例使用Apache commons编解码器:
BigInteger number = new BigInteger(\"4143222334431546643677890898767548679452\");
System.out.println(number);

String encoded = new String(Base64.encodeBase64(number.toByteArray()));
System.out.println(encoded);

BigInteger decoded = new BigInteger(Base64.decodeBase64(encoded));
System.out.println(decoded);
印刷品:
4143222334431546643677890898767548679452
DC0DmJRYaAn2AVdEZMvmhRw=
4143222334431546643677890898767548679452

要回复问题请先登录注册