为什么Integer.valueOf无法将十六进制字符串解析回整数

问题描述 投票:-3回答:1

为什么下面的代码不起作用

System.out.println(Integer.valueOf(Integer.toOctalString(-1), 8));
System.out.println(Integer.valueOf(Integer.toBinaryString(-1), 2));
System.out.println(Integer.valueOf(Integer.toHexString(-1), 16));
java hex
1个回答
0
投票

如果您阅读文档,即Integer.toOctalString(int i)的javadoc,您将找到:

将整数参数的字符串表示形式返回为以8为底的unsigned整数。

[...]

可以通过调用Integer.toOctalString(int i)从返回的字符串s中恢复参数的值。

Integer.parseUnsignedInt(s, 8)Integer.parseUnsignedInt(s, 8)的Javadoc说的完全一样,只是基数当然不同(分别为Integer.toBinaryString(int i)Integer.toBinaryString(int i))。

Integer.toHexString(int i)

输出

Integer.toHexString(int i)
© www.soinside.com 2019 - 2024. All rights reserved.