在Java中将字符串UUID转换为BigInteger

Rah*_*pta 1 java uuid biginteger

我正在尝试将以字符串形式出现的UUID转换为Big Integer,但每次都失败,并带有Number Format异常,因为它需要String Decimal作为参数。有什么方法可以实现这一目标。

String x = "6CFAFD0DA976088FE05400144FFB4B37";
Run Code Online (Sandbox Code Playgroud)

我也尝试了基数,但输出是不同的。

BigInteger big = new BigInteger(x, 0);

System.out.println(big);
Run Code Online (Sandbox Code Playgroud)

感谢您的协助,TIA。

Cod*_*roc 6

您应该使用基数 16,因为您的字符串具有0-9和AF的字母数字值,如果您具有十六进制字符串,则将基数设置为16。

String x = "6CFAFD0DA976088FE05400144FFB4B37";
BigInteger big = new BigInteger(x, 16);
System.out.println(big);
Run Code Online (Sandbox Code Playgroud)

输出值

144859830291446118078300087367740640055
Run Code Online (Sandbox Code Playgroud)

  • 请注意,基数至少需要为 16 才能处理它,但可以高达 36 (2认同)

Par*_*ras 5

您需要将radix值设置为16。

对于十六进制字符串,您需要将基数值定义为 16