簡體   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