【发布时间】:2014-11-21 16:58:16
【问题描述】:
我写这个没问题:(它也没有给出任何错误)
int hex = 0xFFFFFFFF;
整数也必须有一个 alpha 值!
但是当我尝试这样做时:
Integer hex = Integer.parseInt("0xFFFFFFFF");
// Or I try this:
Integer hex = Integer.parseInt("FFFFFFFF");
我收到java.lang.NumberFormatException: For input string: "0xFFFFFFFF" 抛出!
为什么这不起作用?
我猜还有其他一些我没有意识到的解析十六进制整数的方法,我真的需要能够为我正在制作的程序从字符串中解析十六进制。
【问题讨论】:
-
附带说明,您可能应该使用
int hex = ...而不是Integer hex = ...。大写的是对象形式,而不是原始形式。虽然两者都可以工作,但尝试将Integer用作int将迫使Java 反复拆箱和重新装箱,从而减慢您的应用程序并占用更多内存,这都不是一个好主意。这也不是很好的编码习惯。