我有十六进制字符串,例如。 " 0x103E" ,我想将其转换为整数。
手段String no = "0x103E";
到int hexNo = 0x103E;
我试过了Integer.parseInt("0x103E",16);
,但它给出了数字格式异常。
我如何实现这一目标?
答案 0 :(得分:1)
你只需要忽略" 0x"部分(因为它实际上并不是数字的一部分)。
您还需要确保您正在解析的数字实际上符合Java中长度为4个字节的整数,因此它需要短于8位作为十六进制数。
答案 1 :(得分:0)
不需要去掉“0x”前缀;只需使用 Integer.decode
而不是 Integer.parseInt
:
int x = Integer.decode("0x103E");
System.out.printf("%X%n", x);