3

エラーは見落とされた間違いによるものでした

最近、RGB 値を 16 進数に変換する 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

16 進文字列を 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 に答える