将十六进制字符串解析为整数会引发 NumberFormatException?

2023-11-30

所以,在 Java 中,您知道如何声明整数,如下所示:

int hex = 0x00ff00;

我认为你应该能够扭转这个过程。我有这个代码:

Integer.valueOf(primary.getFullHex());

其中 Primary 是自定义 Color 类的对象。它的构造函数采用一个表示不透明度的整数(0-99)和一个十六进制字符串(例如00ff00).

这是getFullHex method:

public String getFullHex() {
    return ("0x" + hex);
}

当我调用这个方法时,它给出了我的这个NumberFormatException:

java.lang.NumberFormatException: For input string: "0xff0000"

我不明白发生了什么事。有人可以解释一下吗?


这会有帮助吗?

Integer.parseInt("00ff00", 16)

16意味着您应该将字符串解释为基于 16 的(十六进制)。通过使用2你可以解析二进制数,8代表八进制。10是默认值并解析十进制数字。

在你的情况下Integer.parseInt(primary.getFullHex(), 16)不会工作,因为0x前缀为getFullHex()- 摆脱掉,你就会没事的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将十六进制字符串解析为整数会引发 NumberFormatException? 的相关文章

随机推荐