簡體   English   中英

為什么 Integer.valueOf 無法將十六進制字符串解析回 integer

[英]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 說的完全一樣,除了基數當然不同(分別為216 )。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM