因错误而错误的错误
我最近创建了一个将rgb值转换为十六进制的Java程序。现在我正在尝试制作一个相反的程序。我已经想出了我要使用的算法,我只需要将字符A - F
转换为值10 - 15
。好像很简单吧?这是我遇到问题的地方。
这是我到目前为止的代码。字符串被送入nums()
,然后根据数组abc
对其进行检查。一旦找到匹配,则需要字符串a
并将其转换为整数,然后取i
并添加10以获得正确的数字。
class TextToNum {
String[] abc = { "A", "B", "C", "D", "E", "F" };
public int nums(String a) {
for(int i = 0; i < abc.length; i++) {
if (a == abc[i]) {
a = Integer.parseInt(a.trim());
a = i + 10;
}
}
return a;
}
}
我得到的错误是:
gbConv.java:52: incompatible types
found : int
required: java.lang.String
a = Integer.parseInt(a.trim());
^
rgbConv.java:53: incompatible types
found : int
required: java.lang.String
a = i + 10;
^
rgbConv.java:56: incompatible types
found : java.lang.String
required: int
return a;
^
很明显Integer.parseInt()
出了问题,但我不知道如何修复它。我一直在网上看,我找不到任何东西。任何建议/教程都会有很大的帮助。
答案 0 :(得分:10)
要将十六进制字符串转换为int,您只需使用Integer.parseInt(str, 16)
。
答案 1 :(得分:9)
为什么不试试已有的。
Color.decode("hex string");
答案 2 :(得分:1)
Integer.parseInt(String str)
包含整数时, str
才有效。就像你有一个字符串str="12345"
Integer.parseInt(str)
结果12345
为整数。
但是在你提到的情况下,你正在通过"A", "B", "C", "D", "E", "F"
中的任何一个。