在 java 中将 0x1 转换为 1

Converting 0x1 to 1 in java

0x1 是 1 的十六进制形式。更多信息在此 link
我正在尝试将 0x1 转换为 1。所以我正在使用这段代码。

    String hex = "0x1";
    int decimal = Integer.parseInt(hex, 16);
    System.out.println(decimal);

然而,它returns异常为

Exception in thread "main" java.lang.NumberFormatException: For input string: "0x1"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at HelloWorld.main(HelloWorld.java:7)

如何让这个 java 代码打印 1?

您可以使用 Integer.decode:

String hex = "0x1";
int value = Integer.decode(hex);
System.out.println(value);

(注意:我已将整数变量从 'decimal' 重命名为 'value',因为它没有任何具体的十进制;它只是一个整数。它实际上在内部表示为二进制。)