这是将String Hex转换为十进制的方法:
private int fromHexToPercent(String hex){
int decimal = Integer.parseInt(hex, 16);
return decimal;
}
当我在以下值上调用它时:
#ffe87e, #ffc6bb, #528b7a, #9b81ff, #7d6a32, #000c40
除此以外,我在此行上收到以下异常: int decimal = Integer.parseInt(hex, 16);
错误:
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:481)
这是我从rgb转换为hex的方法,我感觉Java对此行有问题:hex =“ 0” + hex;。但是它必须存在以正确获得十六进制代码。
public static String toHex(int r, int g, int b) {
return "#" + toBrowserHexValue(r) + toBrowserHexValue(g) + toBrowserHexValue(b);
}
private static String toHexValue(int number) {
String hex = Integer.toHexString(number & 0xff);
while (hex.length() < 2) {
hex = "0" + hex;
}
return hex;
}
真的希望有人可以看到解决这个问题的方法=)
最佳答案
唯一有效的十六进制数字是0-9和a-f(或A-F)。 #
不是有效的十六进制数字。
关于java - 从十六进制转换为十进制时,为什么会出现NumberFormatException,如何防止呢? -Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14657613/