Java/Java(자바)
[Java] String과 Byte array (byte[]) 변환, 여러가지 방법들
2021. 10. 13. 21:30반응형
요약
- 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
시간을 절약했으면 아래의 좋아요 부탁드립니다.
반응형
'Java > Java(자바)' 카테고리의 다른 글
[Java] 얇은 복사, 깊은 복사 (0) | 2022.01.05 |
---|---|
[Java Framework] Junit과 Mockito 차이 (0) | 2021.10.19 |
[Test code] @VisibleForTesting 및 테스트 코드 짤 때 주의사항. (0) | 2021.10.13 |
[Java] 접근 지정자 (Access modifier) (0) | 2021.10.13 |
[Java] 버전별로 OpenJDK 설치하기, 버전확인하기 (0) | 2021.06.30 |