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

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

以下は私たちのバイト配列です。

byte[] b = new byte[]{'p', 'q', 'r'};

ここにカスタムメソッド「display」を作成し、バイト配列の値を渡しました。同じメソッドがバイト配列を十六進数文字列に変換します。

public static String display(byte[] b1) {
   StringBuilder strBuilder = new StringBuilder();
   for(byte val : b1) {
      strBuilder.append(String.format("%02x", val&0xff));
   }
   return strBuilder.toString();
}

さて、この全体のサンプルを見てみましょう。

サンプル

public class Demo {
   public static void main(String args[]) {
      byte[] b = new byte[]{'p', 'q', 'r'};
      /* バイト配列は非表示可能な文字を持つため、文字列として表示できません-印刷可能
      文字例:0 は NUL、 5 ENQ が ASCII フォーマット */
      String str = new String(b);
      System.out.println(str);
      //十六進数文字列のバイト配列
      System.out.println("Byte array to Hex String = " + display(b));
   }
   public static String display(byte[] b1) {
      StringBuilder strBuilder = new StringBuilder();
      for(byte val : b1) {
         strBuilder.append(String.format("%02x", val&0xff));
      }
      return strBuilder.toString();
   }
}

出力結果

pqr
byte array to Hex String = 707172