在Java中解析整数字符串

Pau*_*ers 10 java string parsing integer base

可能重复:
如何在java中将十六进制字符串转换为long?

我知道Java无法解决这个问题:

Integer.parseInt("0x64")
Run Code Online (Sandbox Code Playgroud)

相反,你必须这样做:

Integer.parseInt("64", 16)
Run Code Online (Sandbox Code Playgroud)

是否有内置于Java中的内容可以使用十六进制,八进制的标准前缀以及缺少十进制前缀来自动为我解析整数字符串(这样我就不必去除前缀并明确设置基数)?

Tim*_*per 28

你可以使用Integer.decode:

Integer.decode("0x64");
Run Code Online (Sandbox Code Playgroud)

解码规则如下:

Prefix  Type
        DecimalNumeral
0x      HexDigits
0X      HexDigits
#       HexDigits
0       OctalDigits
Run Code Online (Sandbox Code Playgroud)

注:decode在提供Short,IntegerLong.