본문으로 바로가기

1. 기본 타입 ↔ 문자열(String Class)

1. 기본 타입 → 문자열

// 기본 타입 → 문자열
byte b = 10;
int i = 1;
double d = 1.0;
boolean check = true;

// String.valueOf()
String byteToStr1 = String.valueOf(b);
String intToStr1 = String.valueOf(i);
String doubleToStr1 = String.valueOf(d);
String booleanToStr1 = String.valueOf(check);

// Wrapper.toString()
String byteToStr2 = Byte.toString(b);
String intToStr2 = Integer.toString(i);
String doubleToStr2 = Double.toString(d);
String booleanToStr2 = Boolean.toString(check);

 

2. 기본 타입 ← 문자열

// 기본 타입 ← 문자열
String bStr = "10";
String iStr = "1";
String dStr = "1.0";
String checkStr = "true";

// Wrapper.parseXXX()
byte b = Byte.parseByte(bStr);
int i = Integer.parseInt(iStr);
double d = Double.parseDouble(dStr);
boolean check = Boolean.parseBoolean(checkStr);

 

2. 기본 타입 ↔ Wrapper Class

1. 기본 타입 → Wrapper Class

// 기본 타입 → Wrapper Class
byte b = 10;
int i = 1;
double d = 1.0;
boolean check = true;

// 자동 박싱 (자바 5부터 추가된 기능)
Byte byteToWrapper1 = b;
Integer integerToWrapper1 = i;
Double doubleToWrapper1 = d;
Boolean booleanToWrapper1 = check;

// 직접 박싱 (자바 4 이전 버전 필수) => new
Byte byteToWrapper2 = new Byte(b);
Integer integerToWrapper2 = new Integer(i);
Double doubleToWrapper2 = new Double(d);
Boolean booleanToWrapper2 = new Boolean(check);

// 직접 박싱 (자바 4 이전 버전 필수) => Wrapper.valueOf()
Byte byteToWrapper3 = Byte.valueOf(b);
Integer integerToWrapper3 = Integer.valueOf(i);
Double doubleToWrapper3 = Double.valueOf(d);
Boolean booleanToWrapper3 = Boolean.valueOf(check);

 

2. 기본 타입 ← Wrapper Class

// 기본 타입 ← Wrapper Class
Byte byteToWrapper = 10;
Integer integerToWrapper = 1;
Double doubleToWrapper = 1.0;
Boolean booleanToWrapper = true;

// 자동 언박싱 (자바 5부터 추가된 기능)
byte b1 = byteToWrapper;
int i1 = integerToWrapper;
double d1 = doubleToWrapper;
boolean check1 = booleanToWrapper;

// 직접 언박싱 (자바 4 이전 버전 필수) => Wrapper.xxxValue()
byte b2 = byteToWrapper.byteValue();
int i2 = integerToWrapper.intValue();
double d2 = doubleToWrapper.doubleValue();
boolean check2 = booleanToWrapper.booleanValue();

 

3. 문자열 ↔ byte[]

개발을 하다 보면 바이트 배열로 자주 변환하곤 합니다. 

특히 네트워크를 활용하여 문자열을 전송하거나 또는 문자열 데이터를 암호화할 경우 바이트 배열로 변환하게 됩니다.

 

1. 문자열 → byte[] 

// byte[] ← Wrapper Class
String str = "A";

// getBytes()
byte[] strTobytes = str.getBytes(StandardCharsets.UTF_8); // 문자셋 생략 시 시스템의 기본 문자셋으로 인코딩

// 출력
System.out.println(Arrays.toString(strTobytes)); // [65] A의 ASCII 코드 값

 

2. 문자열 ← byte[]

// byte[] → Wrapper Class
byte[] bytes = {65};

String bytesToStr2 = new String(bytes);
String bytesToStr1 = bytes.toString(); // Object의 toString이 실행되므로 메모리 번지수가 출력 (잘못 된 예)

// 출력
System.out.println(bytesToStr2); // A
System.out.println(bytesToStr1); // 번지 수 (잘못 된 예)