Java 如何将十六进制整数从字符串解析为整数?

Java 如何将十六进制整数从字符串解析为整数?,java,parsing,integer,Java,Parsing,Integer,我写这篇文章没有问题:(它也没有给出任何错误) 整数也必须有一个alpha值 但当我尝试这样做时: Integer hex = Integer.parseInt("0xFFFFFFFF"); // Or I try this: Integer hex = Integer.parseInt("FFFFFFFF"); 我得到一个java.lang.NumberFormatException:对于输入字符串:“0xFFFFFF”抛出 为什么这不起作用 我猜还有其他方法可以解析我没有意识到的十六进制整

我写这篇文章没有问题:(它也没有给出任何错误)

整数也必须有一个alpha值

但当我尝试这样做时:

Integer hex = Integer.parseInt("0xFFFFFFFF");
// Or I try this:
Integer hex = Integer.parseInt("FFFFFFFF");
我得到一个
java.lang.NumberFormatException:对于输入字符串:“0xFFFFFF”
抛出

为什么这不起作用


我猜还有其他方法可以解析我没有意识到的十六进制整数,我真的需要能够从我正在制作的程序的字符串中解析十六进制。

实际上有一个单独的函数,您可以在其中定义基数:

Integer.parseInt(x)
只调用
Integer.parseInt(x,10)
,因此必须指定基数为10的数字

为了解析十六进制字符串,您只需使用以下内容(请注意,不允许使用0x前缀):


作为旁注,您可能应该使用
inthex=…
而不是
Integer hex=…
。大写的是宾语形式,而不是原语形式。虽然两者都可以工作,但尝试将
Integer
用作
int
会迫使Java反复取消和重新绑定,从而降低应用程序的速度并占用更多内存,这两种方法都不是一个好主意。这也不是很好的编码实践。
Integer hex = Integer.parseInt("0xFFFFFFFF");
// Or I try this:
Integer hex = Integer.parseInt("FFFFFFFF");
Integer.parseInt("FFFFFFF", 16);