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

标签 java regex hex

我正在尝试将十六进制字符串转换为整数,但无论我如何尝试,我都会不断收到 java.lang.NumberFormatException: For input string: "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

关于java - 在 Java 中将十六进制字符串转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54950048/

相关文章:

java - Akka:可序列化的 Prop

java - 字符串列表未并行运行 - Java 8 并行流

regex - 从结构松散的文本中解析价格

Java Scanner 用空行分割记录

c++ - 如何使用 _mm_extract_ps SSE GCC instrinc 函数将十六进制 float 转换为 C/C++ 中的 float

java - 如何使用java将timestamp-millis logicalType序列化为avro文件

java - 使用 Otto 的内存泄漏 Leakcanary 报告

java - 如何使用正则表达式获取此 URL 参数

c - 带有 "%d"以 0 开头的数字(例如 "0102")的 printf 给出意外的答案(例如 '"66")

json - NServiceBus:人类可读的消息体