![](/img/trans.png)
[英]Findbugs issue with “Boxing/unboxing to parse a primitive” with Integer.valueOf(String)
[英]Why Integer.valueOf cannot parse the hex string back to integer
为什么下面的代码不起作用
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));
如果您阅读文档,即Integer.toOctalString(int i)
的 javadoc,您会发现:
将 integer 参数的字符串表示形式返回为基数为 8 的无符号integer。
[...]
可以通过调用
Integer.parseUnsignedInt(s, 8)
从返回的字符串s
中恢复参数的值。
Integer.toBinaryString(int i)
和Integer.toHexString(int i)
的 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));
Output
-1
-1
-1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.