【问题标题】:How do I parse a hex-int from a string to an Integer?如何将十六进制整数从字符串解析为整数?
【发布时间】:2014-11-21 16:58:16
【问题描述】:

我写这个没问题:(它也没有给出任何错误)

int hex = 0xFFFFFFFF;

整数也必须有一个 alpha 值!

但是当我尝试这样做时:

Integer hex = Integer.parseInt("0xFFFFFFFF");
// Or I try this:
Integer hex = Integer.parseInt("FFFFFFFF");

我收到java.lang.NumberFormatException: For input string: "0xFFFFFFFF" 抛出!

为什么这不起作用?

我猜还有其他一些我没有意识到的解析十六进制整数的方法,我真的需要能够为我正在制作的程序从字符串中解析十六进制。

【问题讨论】:

  • 附带说明,您可能应该使用int hex = ... 而不是Integer hex = ...。大写的是对象形式,而不是原始形式。虽然两者都可以工作,但尝试将Integer 用作int 将迫使Java 反复拆箱和重新装箱,从而减慢您的应用程序并占用更多内存,这都不是一个好主意。这也不是很好的编码习惯。

标签: java parsing integer


【解决方案1】:

实际上有一个单独的函数可以定义基数:

https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt(java.lang.String,%20int)

Integer.parseInt(x) 只是调用Integer.parseInt(x, 10),所以你必须指定一个基数为 10 的数字。

为了解析十六进制字符串,您只需使用以下内容(注意不允许使用 0x 前缀):

Integer.parseInt("FFFFFFF", 16);

【讨论】:

    猜你喜欢
    • 2011-04-08
    • 2023-03-25
    • 2012-08-29
    • 2012-07-07
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多