我正在尝试将十六进制字符串转换为整数,但是无论如何我都不断获取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

09-04 16:23
查看更多