繁体   English   中英

在Java中将十六进制字符串转换为int

[英]Converting a hex String to an int in Java

我正在尝试将一个十六进制字符串转换为一个整数,但是无论如何我都不断获取java.lang.NumberFormatException:对于输入字符串:“ 0xE0030000”。 我在代码中使用以下模式:

    String ecuPattern ="(\\s*)(ECU_ADDRESS )(0xE0\\d*\\w*\\d*)";

    if(mt.find()){
        String stringNumber = mt.group(3);
        long number = Long.parseLong(stringNumber, 16);

你能告诉我我在想什么吗? 先感谢您!

您的代码似乎不完整,但是基于您的异常消息,Long.parseLong的输入应为“ E0030000”,而不应为“ 0xE0030000”。

public static void main(String[] args){
    String hex="E0030000";  
    Long decimal=Long.parseLong(hex,16);  
    System.out.println(decimal);
}

输出:3758292992

如果愿意,还可以使用decode()并保留“ 0x”。

String hex="0xE0030000";  
long decimal=Long.decode(hex);

从Javadoc:

将字符串解码为Long。 接受以下语法给出的十进制,十六进制和八进制数字:

  DecodableString: Signopt DecimalNumeral Signopt 0x HexDigits Signopt 0X HexDigits Signopt # HexDigits Signopt 0 OctalDigits 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM