Java - 将十六进制转换为十进制 - 使一个字符串=正确的数字

Mic*_*son 3 java string int parsing

错误是由于错过了一个错误的错误

我最近创建了一个将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;
  }
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

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;
               ^
Run Code Online (Sandbox Code Playgroud)

显然有些问题Integer.parseInt()但是我不确定如何修复它.我一直在网上看,我找不到任何东西.任何建议/教程都会有很大的帮助.

NPE*_*NPE 10

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


Smi*_*mit 9

为什么不试试已有的.

  Color.decode("hex string");
Run Code Online (Sandbox Code Playgroud)

  • 我不知道,这比parseInt和一堆按位操作要好得多.+1 (5认同)