반응형

요약

- bytes 배열을 String으로 바꾸고 싶으면,  new String(byte배열).

- String을 bytes 배열로 바꾸고 싶으면,  str.getBytes().

 

String -> Byte array (byte[])

1. String의 getBytes() 메서드 이용.

String str1 = "a1b2c3";
byte[] buffers = str1.getBytes(); 

for(int i = 0; i < 6; i++) {
	System.out.println(buffers[i]);			
}

출력결과

97
49
98
50
99
51

 

설명

각각의 문자에 대한 바이트값이,  (아스키 코드 값)

buffers라는 byte 배열에 저장하였다. (getBytes() 메서드를 이용하여)

 

 

String -> Byte array (byte[]) -> String

1. String의 new 키워드 (생성자) 이용.

String str1 = "a1b2c3";
byte[] buffers = str1.getBytes(); 
		
String str2 = new String(buffers);
		
System.out.println(str2);

출력결과

a1b2c3

 

설명

bytes 배열을 String 문자열로 바꾸고 싶으면, new String(byte배열).

 

Byte array (byte[]) -> String

1. String의 new 키워드 (생성자) 이용.

// 0x66 = f, 0x67 = g, 0x68 = h, 0x69 = i.
byte[] byteArray = {0x66, 0x67, 0x68, 0x69};
String str = new String(byteArray);
System.out.println(str);

출력결과

fghi

 

설명

str은 byteArray의 값들을 바탕으로,

문자를 만들어서 string으로 반환한다.

 

2. Arrays.toString 메서드 이용 (위와 결과가 다름)

// 0x66 = f, 0x67 = g, 0x68 = h, 0x69 = i.
byte[] byteArray = {0x66, 0x67, 0x68, 0x69};
String str = Arrays.toString(byteArray);
System.out.println(str); // Result: [102, 103, 104, 105]

System.out.println(str.charAt(0)); // [
System.out.println(str.charAt(1)); // 1
System.out.println(str.charAt(2)); // 0
System.out.println(str.charAt(3)); // 2

출력결과

[102, 103, 104, 105]

[

1

0

2

 

설명

str은 byteArray의 값들을 바탕으로,

하나하나의 실제 값을 문자로 변환하여, [a, b, c] 와 같은 형식으로,

string으로 반환한다.

 

 

String과 Byte array (Byte[]) 비교하는 방법

// String 1
String str1 = "a1b2c3";
		
// String 2
byte[] buffers = {97, 49, 98, 50, 99, 51}; 
String str2 = new String(buffers);
		
if(str1.equals(str2)) {
	System.out.println("true");
}

출력결과

true

 

// String 1
String str1 = "a1b2c3";
		
// String 2
byte[] buffers = {'a', '1', 'b', '2', 'c', '3'}; 
String str2 = new String(buffers);
		
if(str1.equals(str2)) {
	System.out.println("true");
}

출력결과

true

 

// String 1
String str1 = "a1b2c3";
		
// String 2
byte[] buffers = str1.getBytes(); 
String str2 = new String(buffers);
		
if(str1.equals(str2)) {
	System.out.println("true");
}

출력결과

true

 

 

시간을 절약했으면 아래의 좋아요 부탁드립니다.

반응형