목차
- javac 활용 자바 소스 코드 컴파일 예제 이전 포스팅
- 자바 배열 선언 및 값 추가, 변경, 삭제 예제 이전 포스팅
- 자바 바이트 배열을 Hex 문자열로 변환 예제 이전 포스팅
- 자바 Hex 문자열을 바이트 배열로 변환 예제
- 자바 바이트 배열을 문자열로 변환 예제
javac 활용 자바 소스 코드 컴파일 예제 이전 포스팅
안녕하세요 오늘은 이전 포스팅에서 다뤘던 바이트 배열을 Hex 문자열로 변환하는 예제와 반대로 Hex 문자열을 2개 문자 단위로 파싱하여 바이트 배열로 변환하는 방법에 대해 알아보도록 하겠습니다. 오늘 예제 실행을 위해 javac 컴파일 방법을 아직 모르신다면 아래 링크를 참조하여 학습해주세요.
2023.08.10 - [Linux] - [Linux/Java] 리눅스 우분투에서 java 컴파일 및 실행 예제(javac)
자바 배열 선언 및 값 추가, 변경, 삭제 예제 이전 포스팅
또한 바이트 배열은 배열의 특성을 가지고 있습니다. 바이트 타입의 변수가 일련으로 나열된 배열입니다. 오늘 다루는 바이트배열도 이러한 배열의 특성을 잘 이해하고 있어야 더욱더 쉽게 따라할 수 있습니다. 만약 아직 배열 값 추가, 변경, 삭제 등과 같은 방법에 대해 잘 모르신다면 아래 링크를 참조해주세요.
2023.08.14 - [Java] - [Java/Linux] 자바 배열 선언 및 값 추가, 삭제, 변경 예제
자바 바이트 배열을 Hex 문자열로 변환 예제 이전 포스팅
마지막으로 오늘 포스팅 주제의 반대되는 바이트 배열을 Hex 문자열로 변환하는 예제 포스팅을 참고해주세요. 서로 반대로 변환하는 방법에 대해 익숙해지면 예제에 나오는 기능을 파악하기 쉽습니다.
아래는 해당 포스팅 링크입니다.
2023.08.14 - [Java] - [Java/Linux] 바이트 배열 값을 Hex 문자열로 변환 예제
자바 Hex 문자열을 바이트 배열로 변환 예제
아래는 자바에서 Hex 문자열을 2글자 단위로 파싱하여 바이트 배열로 변환하는 예제입니다.
import java.util.*;
public class Example {
public static void main(String[] args) {
String btsRelatedText = "BTS, also known as the Bangtan Boys, is a South Korean boy band formed by Big Hit Entertainment.";
// 문자열을 바이트 배열로 변환
byte[] byteArray = btsRelatedText.getBytes();
// 바이트 배열을 Hex 문자열로 변환
String hexString = byteArrayToHexString(byteArray);
// Hex 문자열을 다시 바이트 배열로 변환
byte[] decodedByteArray = hexStringToByteArray(hexString);
System.out.println("Original string: " + btsRelatedText);
System.out.println("Byte array length: " + byteArray.length);
System.out.println("Hex string: " + hexString);
}
// 바이트 배열을 Hex 문자열로 변환하는 메서드
public static String byteArrayToHexString(byte[] byteArray) {
StringBuilder hexString = new StringBuilder();
for (byte b : byteArray) {
hexString.append(String.format("%02X", b));
}
return hexString.toString();
}
// Hex 문자열을 바이트 배열로 변환하는 메서드
public static byte[] hexStringToByteArray(String hexString) {
int length = hexString.length();
byte[] byteArray = new byte[length / 2];
for (int i = 0; i < length; i += 2) {
byteArray[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4)
+ Character.digit(hexString.charAt(i + 1), 16));
}
return byteArray;
}
}
자바 바이트 배열을 문자열로 변환 예제
아래는 위에서 변환한 바이트 배열을 가지고 원래 문자열 형태로 변환하는 예제입니다. String객체에 인자로 전달하여 초기화하면 문자열로 변환이됩니다.
import java.util.*;
public class Example {
public static void main(String[] args) {
String btsRelatedText = "BTS, also known as the Bangtan Boys, is a South Korean boy band formed by Big Hit Entertainment.";
// 문자열을 바이트 배열로 변환
byte[] byteArray = btsRelatedText.getBytes();
// 바이트 배열을 Hex 문자열로 변환
String hexString = byteArrayToHexString(byteArray);
// Hex 문자열을 다시 바이트 배열로 변환
byte[] decodedByteArray = hexStringToByteArray(hexString);
// 바이트 배열을 문자열로 변환하여 출력
String decodedText = new String(decodedByteArray);
System.out.println("Original string: " + btsRelatedText);
System.out.println("Byte array length: " + byteArray.length);
System.out.println("Hex string: " + hexString);
System.out.println("Decoded text: " + decodedText);
}
// 바이트 배열을 Hex 문자열로 변환하는 메서드
public static String byteArrayToHexString(byte[] byteArray) {
StringBuilder hexString = new StringBuilder();
for (byte b : byteArray) {
hexString.append(String.format("%02X", b));
}
return hexString.toString();
}
// Hex 문자열을 바이트 배열로 변환하는 메서드
public static byte[] hexStringToByteArray(String hexString) {
int length = hexString.length();
byte[] byteArray = new byte[length / 2];
for (int i = 0; i < length; i += 2) {
byteArray[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4)
+ Character.digit(hexString.charAt(i + 1), 16));
}
return byteArray;
}
}