자바에서 문자열을 바이트 배열로, 바이트 배열을 문자열로 변환하기

오늘은 자바에서 String을 byte 배열로 변환하는 방법을 배울 것입니다. 또한 자바에서 byte 배열을 String으로 변환하는 방법도 배우겠습니다.

String을 byte 배열로 변환

문자열을 플랫폼의 기본 문자 집합을 사용하여 바이트의 시퀀스로 인코딩하는 데에는 String 클래스의 getBytes() 메서드를 사용할 수 있습니다. 이 메서드는 오버로드되어 있으며 인수로 Charset도 전달할 수 있습니다. 다음은 자바에서 String을 바이트 배열로 변환하는 방법을 보여주는 간단한 프로그램입니다.

package com.journaldev.util;

import java.util.Arrays;

public class StringToByteArray {

	public static void main(String[] args) {
		String str = "PANKAJ";
		byte[] byteArr = str.getBytes();
		// 바이트 배열 요소를 출력합니다.
		System.out.println("String to byte array: " + Arrays.toString(byteArr));
	}
}

위 프로그램을 실행할 때의 출력은 아래 이미지에 나와 있습니다. 아래 코드를 사용하여 바이트 배열을 얻을 수도 있습니다.

byte[] byteArr = str.getBytes("UTF-8");

그러나 Charset 이름을 제공하는 경우 UnsupportedEncodingException 예외를 처리하거나 throw해야 합니다. 더 좋은 방법은 Java 1.7에서 도입된 StandardCharsets 클래스를 사용하는 것입니다. 다음과 같이 표시됩니다.

byte[] byteArr = str.getBytes(StandardCharsets.UTF_8);

이것이 자바에서 String을 byte 배열로 변환하는 여러 가지 방법입니다.

Java 바이트 배열을 문자열로 변환

자바에서 바이트 배열을 문자열로 변환하는 방법을 보여주는 간단한 프로그램을 살펴보겠습니다.

package com.journaldev.util;

public class ByteArrayToString {

	public static void main(String[] args) {
		byte[] byteArray = { 'P', 'A', 'N', 'K', 'A', 'J' };
		byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };

		String str = new String(byteArray);
		String str1 = new String(byteArray1);

		System.out.println(str);
		System.out.println(str1);
	}
}

아래 이미지는 위의 프로그램이 생성한 출력을 보여줍니다. 바이트 배열을 만들 때 char을 제공하는 것을 주목했나요? 이는 오토박싱 때문에 작동하며 char ‘P’가 바이트 배열에서 80으로 변환되기 때문에 동일한 출력이 나옵니다. 그래서 바이트 배열을 문자열로 변환하는 것에 대한 출력이 동일합니다. 문자열에는 바이트 배열과 Charset을 인수로 제공할 수 있는 생성자도 있습니다. 그래서 아래 코드도 자바에서 바이트 배열을 문자열로 변환하는 데 사용할 수 있습니다.

String str = new String(byteArray, StandardCharsets.UTF_8);

String 클래스에는 바이트 배열의 일부를 문자열로 변환하는 메소드도 있습니다.

byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
String str = new String(byteArray1, 0, 3, StandardCharsets.UTF_8);

위의 코드는 완벽하며 ‘str’ 값은 ‘PAN’이 될 것입니다. 이것이 자바에서 바이트 배열을 문자열로 변환하는 것에 관한 전부입니다.

더 많은 배열 예제는 저희 GitHub 저장소에서 확인하실 수 있습니다.

참고: getBytes API 문서

Source:
https://www.digitalocean.com/community/tutorials/string-byte-array-java