반응형
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
- Java
- date
- Array
- 정규식
- vscode
- Eclipse
- table
- Button
- replace
- CSS
- html
- 자바
- js
- map
- 인텔리제이
- ArrayList
- Visual Studio Code
- json
- 문자열
- 자바스크립트
- 이클립스
- CMD
- list
- IntelliJ
- input
- HashMap
- javascript
- string
- 배열
- 이탈리아
Archives
- Today
- Total
어제 오늘 내일
[Java StringBuffer] charAt(), setCharAt() – 특정 문자 읽기와 수정하기 본문
StringBuffer
는 가변(mutable) 문자열을 다루는 클래스라서, 특정 위치의 문자를 읽거나 바꾸는 작업을 직접 할 수 있습니다.String
과 달리 새로운 객체를 만들 필요가 없다는 점이 장점입니다.
1. charAt() – 특정 문자 읽기
public synchronized char charAt(int index)
- 지정한 인덱스의 문자를 반환
- 인덱스는 0부터 시작
StringBuffer sb = new StringBuffer("Java");
char c = sb.charAt(2);
System.out.println(c);
// 출력: v
👉 "Java"
의 인덱스 2
에는 'v'
가 있습니다.
2. setCharAt() – 특정 문자 수정
public synchronized void setCharAt(int index, char ch)
- 지정한 인덱스의 문자를 새로운 문자로 교체
StringBuffer sb = new StringBuffer("Java");
sb.setCharAt(0, 'K');
System.out.println(sb.toString());
// 출력: Kava
👉 첫 번째 문자 'J'
가 'K'
로 바뀌었습니다.
3. 실전 활용 예제
문자열 일부 소문자/대문자 변환
StringBuffer sb = new StringBuffer("Hello World");
sb.setCharAt(6, 'w');
System.out.println(sb.toString());
// 출력: Hello world
👉 "World"
의 첫 글자를 소문자로 바꿀 수 있습니다.
특정 문자 변환
StringBuffer sb = new StringBuffer("a-b-c-d");
for (int i = 0; i < sb.length(); i++) {
if (sb.charAt(i) == '-') {
sb.setCharAt(i, '_');
}
}
System.out.println(sb.toString());
// 출력: a_b_c_d
👉 특정 문자를 다른 문자로 변환하는 데 유용합니다.
4. 주의할 점
- 인덱스 범위를 벗어나면
StringIndexOutOfBoundsException
발생
StringBuffer sb = new StringBuffer("Java");
// sb.charAt(10); // 예외 발생
// sb.setCharAt(10,'X'); // 예외 발생
👉 반드시 0 <= index < length()
범위 내에서 사용해야 합니다.
5. 정리
charAt(index)
→ 특정 위치 문자 읽기setCharAt(index, ch)
→ 특정 위치 문자 수정- 문자열 일부 수정, 특정 문자 변환 등에 자주 사용
- 스레드 안전 (
synchronized
)
🔑 한 줄 정리
👉 문자열의 개별 문자를 다루려면 StringBuffer.charAt()
과 setCharAt()
을 활용하자!
반응형
'IT > Java' 카테고리의 다른 글
[Java StringBuffer] toString() – 최종 문자열 변환하기 (0) | 2025.09.28 |
---|---|
[Java StringBuffer] substring() – 부분 문자열 추출하기 (0) | 2025.09.27 |
[Java StringBuffer] length(), capacity(), ensureCapacity(), setLength(), trimToSize() – 길이와 버퍼 관리 (0) | 2025.09.26 |
[Java StringBuffer] replace() – 문자열 일부 교체하기 (0) | 2025.09.26 |
[Java StringBuffer] delete(), deleteCharAt() – 문자열 삭제하기 (0) | 2025.09.25 |
Comments