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

Java에서 바이트 배열을 십육진 문자열로 변환하기

다음은 우리의 바이트 배열입니다.

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

여기서는 사용자 정의 메서드 "display"를 생성하고 바이트 배열 값을 전달했습니다. 같은 메서드는 바이트 배열을 16진수 문자열로 변환합니다.

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'};
      /* byte array cannot be displayed as String because it may have non-printable
      characters e.g. 0 is NUL, 5 is ENQ in ASCII format */
      String str = new String(b);
      System.out.println(str);
      //16진수 문자열의 바이트 배열
      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
도움말