【问题标题】:java hexadecimal to int conversion - have to remove 0X ?java 十六进制到 int 的转换 - 必须删除 0X 吗?
【发布时间】:2013-10-03 03:51:44
【问题描述】:

我有一个包含许多十六进制数字的文件(例如 - 0X3B4 )。我试图解析这个文件,将这些数字分配给整数,但似乎没有让 Integer.parseInt 工作。

   int testint = Integer.parseInt("3B4",16);  <- WORKS

   int testint = Integer.parseInt("0X3B4",16);

给出错误:

Exception in thread "main" java.lang.NumberFormatException: For input string: "0x3b4"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)

将值 0XB4 分配给 int 的正确方法是什么?

我是否摆脱 0X - 以这种方式表示十六进制编号并不罕见......

【问题讨论】:

    标签: java input integer hex


    【解决方案1】:

    你可以的

    int hex = Integer.decode("0x3b4");
    

    你说得对,parseInt 和 parseLong 不会接受 0x 或 0X

    【讨论】:

    • 谢谢。这在 java 1.4.1 中也不起作用,不过我可以在更高版本中使用它。
    • @Nik 我怀疑 1.4.1 现在已经十岁了。 ;)
    猜你喜欢
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多