Java에서 16 진 문자열의 바이트 배열을 변환하는 방법
Asad Riaz
2023년10월12일
-
Java에서 바이트 배열을 16 진 문자열로 변환하는
HEX_ARRAY[]
메소드 -
Java에서 바이트 배열을 16 진 문자열로 변환하는
Hex.encodeHexString()
메소드 -
Java에서 16 진 문자열의 바이트 배열을 변환하는
DatatypeConverter()
메소드 -
Java에서 바이트 배열을 16 진 문자열로 변환하기위한
append(.format)
메소드
이 학습서에서는 Java에서 바이트 배열을 16 진 문자열로 변환하는 방법을 학습합니다.
Java에서 바이트 배열을 16 진 문자열로 변환하는HEX_ARRAY[]
메소드
우리가 시작할 첫 번째 방법은이 변환을 위해 가능한 모든 16 진수 값으로 구성된HEX_ARRAY[]
를 사용하는 것입니다. 이 방법은 다른 방법보다 빠릅니다.
예제 코드:
public class SimpleTesting {
public static void main(String[] args) {
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()
메소드
Java에서 바이트 배열을 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:
[83, 105, 109, 112, 108, 101, 84, 101, 115, 116, 105, 110, 103]
Hex String Conversion: 53696d706c6554657374696e67
Java에서 16 진 문자열의 바이트 배열을 변환하는DatatypeConverter()
메소드
또 다른 접근법은 Java의javax.xml.bind.DatatypeConverter.printHexBinary()
메소드입니다. 이 메소드는 바이트를 가져 와서 배열에서 Hex
로 변환합니다.
예제 코드:
import java.util.Arrays;
import javax.xml.bind.*;
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
Java에서 바이트 배열을 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