3

错误是由于一个被忽视的错误

我最近创建了一个将 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()但我不知道如何解决它。我一直在网上寻找,我找不到任何东西。任何建议/教程都会有很大帮助。

4

3 回答 3

10

要将十六进制字符串转换为 int,您可以简单地使用Integer.parseInt(str, 16).

于 2012-12-11T20:35:40.160 回答
9

你为什么不试试哪个已经可用。

  Color.decode("hex string");
于 2012-12-11T20:35:54.967 回答
1

Integer.parseInt(String str)仅当str包含整数时才有效。就像您将字符串作为整数的str="12345" Integer.parseInt(str)结果一样。12345

但是在您提到的情况下,您正在通过"A", "B", "C", "D", "E", "F".

于 2012-12-11T20:48:08.830 回答