Java에서 16 진 문자열의 바이트 배열을 변환하는 방법

  1. Java에서 바이트 배열을 16 진 문자열로 변환하는HEX_ARRAY[]메소드
  2. Java에서 바이트 배열을 16 진 문자열로 변환하는Hex.encodeHexString()메소드
  3. Java에서 16 진 문자열의 바이트 배열을 변환하는DatatypeConverter()메소드
  4. 자바에서 바이트 배열을 16 진 문자열로 변환하기위한 append(.format)메소드

이 학습서에서는 Java에서 바이트 배열을 16 진 문자열로 변환하는 방법을 학습합니다.

Java에서 바이트 배열을 16 진 문자열로 변환하는HEX_ARRAY[]메소드

우리가 시작할 첫 번째 방법은이 변환을 위해 가능한 모든 16 진수 값으로 구성된HEX_ARRAY[]를 사용하는 것입니다. 이 방법은 다른 방법보다 빠릅니다.

예제 코드:

public class SimpleTesting {
    char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
    byte b[]= new byte[2];
    b[0] = 20;
    b[1] = 10;
    char[] hexChars = new char[b.length * 2];
    for (int j = 0; j < b.length; j++) {
        int v = b[j] & 0xFF;
        hexChars[j * 2] = HEX_ARRAY[v >>> 4];
        hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
    }
        System.out.println(hexChars);
 }
}

산출:

140A

Java에서 바이트 배열을 16 진 문자열로 변환하는Hex.encodeHexString()메소드

자바에서 바이트 배열을 16 진 문자열로 변환하는 두 번째 방법은Hex.encodeHexString()방법입니다. apache의 commons 라이브러리이므로,apache.commons.codec.binary.Hex()메소드를 먼저 컴파일러 내에서 가져와야합니다.

예제 코드:

import java.util.Arrays;
import org.apache.commons.codec.binary.Hex;

public class SimpleTesting {
    public static void main(String[] args) {
        byte[] byteArray = new byte[]
        {'S', 'i', 'm', 'p', 'l', 'e', 'T', 'e', 's',
        't', 'i', 'n', 'g'};
        System.out.println("Byte Array: "); 
        System.out.println(Arrays.toString(byteArray));
        System.out.println("Hex String Conversion: " +
                          Hex.encodeHexString(byteArray));
    }
}

산출:

Byte Array: Simple Testing
Hex String Conversion: 53696d706c652054657374696e67

Java에서 16 진 문자열의 바이트 배열을 변환하는DatatypeConverter()메소드

또 다른 접근법은 Java의javax.xml.bind.DatatypeConverter.printHexBinary()메소드입니다. 이 메소드는 바이트를 가져 와서 배열에서 Hex로 변환합니다.

예제 코드:

import java.util.Arrays;

public class SimpleTesting {
    public static void main(String[] args) {
       byte byteArray[] = 
       {(byte)00, (byte)10, (byte)20, (byte)30, (byte)40};
       String hexString = 
           javax.xml.bind.DatatypeConverter
           .printHexBinary(byteArray);
       System.out.println("Byte Array: "); 
       System.out.println(Arrays.toString(byteArray));
       System.out.println("Hex String Conversion: "
                          + hexString);
    }
}

산출:

Byte Array: 
[0, 10, 20, 30, 40]
Hex String Conversion: 000A141E28

자바에서 바이트 배열을 16 진 문자열로 변환하기위한 append(.format)메소드

사용할 수있는 또 다른 방법은 Java에서stringBuilder를 사용하여append(.format)를 포함시키는 것입니다. 그것은 바이트 배열의 모든 단일 값을 변환하고 그에 따라 하나씩 16 진수 문자열로 변환하여 작동합니다.

예제 코드:

public class SimpleTesting {
    public static void main(String[] args) {
        byte a[]= new byte[2];
        a[0] = 20;
        a[1] = 10;
        StringBuilder sb = new StringBuilder(a.length * 2);
        for(byte b: a)
            sb.append(String.format("%02x", b));
        System.out.println(sb); 
    }
}

산출:

140a

관련 문장 - Java Array

  • Java에서 문자열 배열을 초기화하는 방법
  • Java에서 Int 배열을 반전하는 방법
  • 관련 문장 - Java String

  • Java에서 문자열을 이중으로 변환하는 방법
  • Java에서 문자열을 Char로 변환하는 방법