gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 20:50:24 25 4
gpt4 key购买 nike

所以,在 Java 中,您知道如何像这样声明整数:

int hex = 0x00ff00;

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

Integer.valueOf(primary.getFullHex());

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

这是 getFullHex 方法:

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() - 摆脱,你会没事的。

关于java - 将十六进制字符串解析为整数会引发 NumberFormatException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11377944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com