Java 为什么Integer.valueOf无法将十六进制字符串解析回整数
为什么下面的代码不起作用Java 为什么Integer.valueOf无法将十六进制字符串解析回整数,java,hex,Java,Hex,为什么下面的代码不起作用 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)); 如果您阅读文档,即的javadoc,您将发现: 返回整型参数的字符串表
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));
如果您阅读文档,即的javadoc,您将发现:
返回整型参数的字符串表示形式,该表示形式为基数为8的无符号整数
[……]
参数的值可以通过调用从返回的字符串中恢复
和的Javadoc表示完全相同的事情,只是基数当然分别不同于2和16
System.out.println(Integer.parseUnsignedInt(Integer.toOctalString(-1), 8));
System.out.println(Integer.parseUnsignedInt(Integer.toBinaryString(-1), 2));
System.out.println(Integer.parseUnsignedInt(Integer.toHexString(-1), 16));
输出
-1
-1
-1
@码标不正确。您可以使用Integer.parseUnsignedInt