728x90
반응형
public class StringExample {
public static void main(String[] args) {
// 1. String (불변)
String str = "Hello"; // String str = new String("Hello");
str += " World"; // 새로운 객체 생성됨
System.out.println("String: " + str);
// 2. StringBuilder (가변, 빠름)
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println("StringBuilder: " + sb);
// 3. StringBuffer (가변, 멀티스레드 안전)
StringBuffer sbf = new StringBuffer("Hello");
sbf.append(" World");
System.out.println("StringBuffer: " + sbf);
}
}
- 설명: 1은 불변 2,3 은 가변객체이다. 불변(문자열 변경시 새로운 객체 생성), 가변(새로운 객체 생성 x) 인 것
- 주요 메서드
메서드 | String | StringBuilder / StringBuffer | 설명 |
length() | ✅ | ✅ | 문자열 길이 반환 |
charAt(int index) | ✅ | ✅ | 특정 위치 문자 가져오기 |
substring(int start, int end) | ✅ | ✅ | 문자열 일부 추출 |
indexOf(String str) | ✅ | ✅ | 특정 문자열의 위치 찾기 |
replace(CharSequence target, CharSequence replacement) | ✅ | ✅ | 특정 문자열 치환 |
toString() | ✅ | ✅ | 문자열로 변환 |
equals(Object obj) | ✅ | ❌ | 문자열 비교 (StringBuilder/StringBuffer는 오버라이딩 X) 빌더와 필터는 toString().equals()로 비교하거나 compareTo() 사용하여 비교 |
append(String s) | ❌ | ✅ | 문자열 추가 (String은 + 연산자로 가능) |
insert(int offset, String s) | ❌ | ✅ | 특정 위치에 문자열 삽입 |
delete(int start, int end) | ❌ | ✅ | 특정 범위 문자열 삭제 |
deleteCharAt(int index) | ❌ | ✅ | 특정 위치 문자 삭제 |
reverse() | ❌ | ✅ | 문자열 뒤집기 |
setCharAt(int index, char c) | ❌ | ✅ | 특정 위치 문자 변경 |
728x90
반응형