将Hex字符串转换为Int时的java.lang.NumberFormatException

时间:2015-12-14 09:17:13

标签: java

我想将十六进制字符串转换为十进制,但我在以下代码中遇到错误:

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

错误:

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)

1 个答案:

答案 0 :(得分:13)

23e90b831b74太大而无法放入int

您可以通过计算数字轻松查看。十六进制数中的每两位数字需要一个字节,因此12位数字需要6个字节,而int只需要4个字节。

使用Long.parseLong

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