首页 > 解决方案 > Java将十六进制解析为整数

问题描述

当我将 parseInt("3cf1bb13f1c96", 16) 粘贴到 javascript 控制台时,它成功转换为整数值,即 1072142774901910 但是当我在 java 中使用 Integer.parseInt("3cf1bb13f1c96", 16) 时,它会打印一些东西

Exception in thread "main" java.lang.NumberFormatException: For input string: "3cf1bb13f1c96"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at Main.example(Main.java:line)
    at Main.example(Main.java:line)

标签: javascriptjavaparseint

解决方案


您正在解析的值超出整数范围。在 Java 中,整数范围从 -2,147,483,648 到 +2,147,483,647 。尝试使用 Long 代替:

 Long.parseLong("3cf1bb13f1c96", 16) 

它解析成功:

> Task :Foo.main()
1072142774901910

推荐阅读