Home » Java » java.lang.NumberFormatException when converting a Hex String to Int

java.lang.NumberFormatException when converting a Hex String to Int

Posted by: admin December 28, 2021 Leave a comment

Questions:

I want to convert a Hex String to decimal, but I got an error in the following code:

String hexValue = "23e90b831b74";       
int i = Integer.parseInt(hexValue, 16);

The error:

Exception in thread "main" java.lang.NumberFormatException: For input string: "23e90b831b74"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:495)
Answers:

23e90b831b74 is too large to fit in an int.

You can easily see that by counting the digits. Each two digits in a hex number requires a single byte, so 12 digits require 6 bytes, while an int only has 4 bytes.

Use Long.parseLong.

String hexValue = "23e90b831b74";       
long l = Long.parseLong(hexValue, 16);