반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 정규식
- 이클립스
- javascript
- table
- 자바스크립트
- string
- 문자열
- list
- Visual Studio Code
- CMD
- Eclipse
- ArrayList
- 인텔리제이
- IntelliJ
- vscode
- json
- Java
- html
- 배열
- Array
- CSS
- HashMap
- js
- date
- input
- 이탈리아
- Button
- map
- 자바
- replace
Archives
- Today
- Total
어제 오늘 내일
[Java StringBuffer] append() – 문자열 이어붙이기 본문
StringBuffer
는 StringBuilder
와 마찬가지로 가변(mutable) 문자열을 다루는 클래스입니다.
여기에 문자열을 효율적으로 이어붙일 수 있는 메서드가 바로 append()
입니다.
멀티스레드 환경에서도 안전하게 동작한다는 점에서 차이가 있습니다.
1. append() 기본 사용법
public synchronized StringBuffer append(String str)
- 기존 문자열 뒤에 새로운 문자열을 붙임
- 반환 타입이
StringBuffer
자신이므로 메서드 체이닝 가능 synchronized
키워드로 멀티스레드 환경에서도 안전
StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");
System.out.println(sb.toString());
// 출력: Hello World
👉 기존 문자열을 수정하는 방식이라 String
처럼 매번 새 객체를 만들지 않아 효율적입니다.
2. 다양한 오버로드
append()
는 문자열뿐 아니라 여러 타입을 지원합니다.
StringBuffer sb = new StringBuffer();
sb.append("Java "); // 문자열
sb.append(2025); // 정수
sb.append(3.14); // 실수
sb.append(true); // 불리언
sb.append('X'); // 문자
System.out.println(sb.toString());
// 출력: Java 20253.14trueX
👉 내부적으로 String.valueOf()
를 호출하기 때문에 어떤 타입이든 자연스럽게 붙일 수 있습니다.
3. 메서드 체이닝 활용
반환값이 StringBuffer
이므로 여러 번 이어붙일 때 코드가 간결해집니다.
StringBuffer sb = new StringBuffer();
sb.append("Java")
.append(" Programming")
.append(" Language");
System.out.println(sb.toString());
// 출력: Java Programming Language
👉 +
연산보다 훨씬 가독성이 좋고 성능도 효율적입니다.
4. 실전 활용 예제
로그 메시지 조립
StringBuffer log = new StringBuffer();
log.append("[INFO] ")
.append(System.currentTimeMillis())
.append(" - ")
.append("User logged in.");
System.out.println(log.toString());
👉 멀티스레드 환경에서도 안전하게 문자열을 조합할 수 있습니다.
파일 경로 생성
StringBuffer path = new StringBuffer();
path.append("C:/Users/")
.append("John/")
.append("Documents/")
.append("report.pdf");
System.out.println(path.toString());
// 출력: C:/Users/John/Documents/report.pdf
👉 동적으로 문자열을 조합해야 할 때 유용합니다.
5. StringBuilder와 비교
StringBuilder.append()
→ 빠르지만 스레드 안전성 없음StringBuffer.append()
→ 상대적으로 느리지만 스레드 안전성 보장
👉 싱글스레드 환경에서는 StringBuilder
가, 멀티스레드 환경에서는 StringBuffer
가 적절합니다.
6. 정리
append()
는StringBuffer
에서 문자열을 효율적으로 이어붙이는 핵심 메서드- 문자열뿐만 아니라 숫자, 불리언, 문자 등 다양한 타입 지원
- 반환값이 자기 자신이라 메서드 체이닝 가능
- 스레드 안전성 보장 (
synchronized
)
🔑 한 줄 정리
👉 멀티스레드 환경에서 안전하게 문자열을 이어붙이고 싶다면 StringBuffer.append()
를 쓰자!
반응형
'IT > Java' 카테고리의 다른 글
[Java StringBuffer] delete(), deleteCharAt() – 문자열 삭제하기 (0) | 2025.09.25 |
---|---|
[Java StringBuffer] insert() – 원하는 위치에 문자열 삽입하기 (0) | 2025.09.25 |
[Java StringBuilder] toString() – 최종 문자열 변환하기 (1) | 2025.09.24 |
[Java StringBuilder] substring() – 부분 문자열 추출하기 (0) | 2025.09.23 |
[Java StringBuilder] charAt(), setCharAt() – 특정 문자 읽기와 수정하기 (0) | 2025.09.23 |
Comments