这是我将字符串十六进制转换为十进制的方法:
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;
}
真的希望有人能看到这个问题的解决方案=)