English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Javaで十六進文字列をバイト配列に変換する

十六進数文字列をバイト配列に変換するには、まず指定された文字列の長さを取得し、新しいバイト配列を作成する際にそれを含める必要があります。

byte[] val = new byte[str.length() / 2);

今、バイト配列の長さまでのforループを実行します。

for (int i = 0; i < val.length; i++) {
   int index = i * 2;
   int j = Integer.parseInt(str.substring(index, index + 2), 16);
   val[i] = (byte) j;
}

以下の完全な例を見てみましょう。

public class Demo {
   public static void main(String args[]) {
      String str = "p";
      byte[] val = new byte[str.length() / 2);
      for (int i = 0; i < val.length; i++) {
         int index = i * 2;
         int j = Integer.parseInt(str.substring(index, index + 2), 16);
         val[i] = (byte) j;
      }
      System.out.println(val);
   }
}

出力結果

[B@2a139a55