> Java > java지도 시간 > Java에서 바이트 배열을 문자열로 또는 그 반대로 변환하려면 어떻게 해야 합니까?

Java에서 바이트 배열을 문자열로 또는 그 반대로 변환하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2024-11-09 05:19:02
원래의
743명이 탐색했습니다.

How can I convert byte arrays to strings and vice versa in Java?

바이트 배열 변환

Java는 바이트 배열을 문자열로 또는 그 반대로 변환하는 다양한 방법을 제공합니다. 이 변환은 데이터 전송 및 조작에 중요합니다. 일반적인 시나리오 중 하나는 네트워크를 통해 바이트 데이터를 전송하고 수신 측에서 이를 재구성하는 것입니다.

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

바이트 배열을 문자열로 변환하려면, Arrays.toString() 메서드를 사용할 수 있습니다. 배열을 입력으로 사용하고 대괄호로 묶인 해당 요소의 문자열 표현을 반환합니다. 예:

byte[] data = new byte[] {4, 6, 8, 10};
String dataString = Arrays.toString(data); // prints [-44, 6, 8, 10]
로그인 후 복사

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

그러나 이 문자열 표현은 바이트 배열로 다시 직접 변환할 수 없습니다. 이를 달성하려면 문자열에서 개별 바이트 값을 구문 분석해야 합니다. 한 가지 접근 방식은 String.split() 메서드를 사용하여 바이트 값을 분리한 다음 Byte.parseByte() 메서드를 사용하여 구문 분석하는 것입니다.

String response = "[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]";

String[] byteValues = response.substring(1, response.length() - 1).split(",");
byte[] bytes = new byte[byteValues.length];

for (int i = 0, len = bytes.length; i < len; i++) {
    bytes[i] = Byte.parseByte(byteValues[i].trim());
}
로그인 후 복사

대체 솔루션

또는 ByteBuffer 클래스를 사용하여 바이트 배열 변환을 효율적으로 수행할 수 있습니다. 이는 바이트 배열에서 버퍼를 생성하는 Wrap() 및 버퍼에서 기본 바이트 배열을 검색하는 array()와 같은 메서드를 제공합니다.

byte[] data = new byte[] {4, 6, 8, 10};

ByteBuffer buffer = ByteBuffer.wrap(data);
byte[] dataCopy = buffer.array(); // returns a copy of the original byte array
로그인 후 복사

참고: Arrays.toString () 메서드는 int, double 및 long과 같은 기본 배열과 함께 사용하여 해당 요소의 문자열 표현을 생성할 수도 있습니다. 그러나 기본 유형의 배열로 다시 변환하려면 언어별로 다르며 유형에 따라 달라지는 추가 구문 분석 메커니즘이 필요합니다.

위 내용은 Java에서 바이트 배열을 문자열로 또는 그 반대로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿