3

我正在尝试解决 toString(32) 的目的。作为它的使用示例:

private SecureRandom sRandomString = new SecureRandom();

public String newRandomPass() {
    return new BigInteger(70, sRandomString).toString(32);
}

我已经搜索了 JavaDocs,但仍然没有找到答案。我最接近的是来自这个答案:

https://stackoverflow.com/a/1356337/1065389

但是,我仍然不明白 return 'g' 应该是什么意思。那么 toString(32) 实际上做了什么?

4

2 回答 2

6

它返回具有给定基数的 BigInteger 的字符串表示形式。所以例如

return new BigInteger("70,10").toString(8);

将返回“106”,因为它已被转换为以 8 为底的字符串。(仅限数字 0 到 7)

没有任何参数的法线toString()与 相同toString(10),将整数转换为十进制系统。

并返回“g”,因为“g”实际上被计为一个数字(在这种情况下为 16),就像十六进制数(基数为 16)中的 A(表示 10)一样。

在这里阅读更多:javadoc

于 2013-04-07T20:22:18.817 回答
3

toString 方法返回一个字符串,表示它所应用的对象的值。当您将其应用于数字时,您有一个可选的 radix 参数,可让您决定应该返回哪个数字基数(也称为二进制、八进制、十六进制,在 base-32 的情况下)。您应该阅读有关表示具有不同基数的数字的不同方法。

问候

于 2013-04-07T20:23:46.267 回答