JAVA/자바의 정석

[자바의 정석 - 기초편] 9. (3) join() / StringJoiner / StringBuffer클래스 / StringBuffer 생성자와 메서드

서영22 2023. 12. 5. 17:55

 join() 

join()은 여러 문자열 사이에 구분자를 넣어서 결합함

String animals = "dog, cat, bear";
String[ ] arr = animals.split(",");   // 문자열을 ','를 구분자로 나눠서 배열에 저장
String str = String.join("-", arr);   // 배열의 문자열을 '-'로 구분해서 결합
System.out.println(str);   // dog-cat-bear

 

 

 

 문자열과 기본형 간의 변환 

- 숫자를 문자열로 바꾸는 방법

int i =100;

String str1 = i + "";                     // 100을 "100"으로 변환하는 방법 1 (편리)
String str2 = String.valueOf(i);  // 100을 "100"으로 변환하는 방법 2 (빠름)

 

 

- 문자열을 숫자로 바꾸는 방법

int i = Integer.parseInt("100");            // "100"을 100으로 변환하는 방법 1
int i2 = Integer.valueOf("100");          // "100"을 100으로 변환하는 방법 2

Integer i2 = Integer.valueOf("100");   // 원래는 반환타입이 Integer(참조형)

 

 

 

< 예제 >

 

 

 

 

 StringBuffer 클래스 

문자열을 저장하고 다루는 클래스

 

 

- String처럼 문자형 배열(char[ ])을 내부적으로 갖고있음

 

- String과 달리 내용 변경 가능 (가변 mutable)

 

 

 

StringBuffer의 생성자

 

- 배열은 길이 변경 불가 ➔ 공간이 부족하면 새로운 배열 생성해야 함 ➔ 내용 복사 ➔ 참조 변경

 

- StringBuffer는 저장할 문자열의 길이를 고려해서 적절한 크기로 생성해야 함

 

 

 

StringBuffer의 변경

 

- String과 달리 내용 변경 가능

 

 

 

 

- append()는 지정된 내용을 StringBuffer에 추가 후, StringBuffer의 참조를 반환

 

왼쪽 / 오른쪽 둘다 가능

 

 

 

StringBuffer의 변경

 

- StringBuffer는 equals()가 오버라이딩되어 있지 않음 (주소 비교함)

 

 

 

- StringBuffer을 String으로 변환 후에 equals()로 비교해야 함

 

 

 

 

 StringBuffer의 생성자와 메서드