[메서드] _StringBuilder

Swimming_Ram·2025년 7월 13일
0

JavaStudy

목록 보기
2/3
post-thumbnail

StringBuilder란?

  • java.lang 패키지에 포함된 문자열을 효율적으로 처리하는 클래스
  • 문자열을 수정가능하게 만들어 기존 문자열(String)보다 빠르고 유연하게 처리가 가능함.
  • 보통 문자열 덧붙이기, 삭제, 뒤집기, 삽입등에 사용

StringBuilder를 사용하는 이유

항목String (불변)StringBuilder (가변)
특성문자열이 불변(immutable)문자열이 가변(mutable)
변경 방식변경 시 새로운 객체 생성내부 버퍼를 직접 수정
성능문자열 연산 많을수록 느림빠름
사용 상황간단한 문자열, 상수 처리 등반복적인 수정/조작이 필요한 경우

주요 생성자

생성자설명
new StringBuilder()빈 버퍼 생성
new StringBuilder(String str)초기 문자열 설정

StringBulder 주요 메서드

메서드설명예시
append(String s)문자열 추가sb.append("abc");
insert(int offset, String s)특정 위치에 삽입sb.insert(1, "X");
delete(int start, int end)구간 삭제sb.delete(1, 3);
reverse()문자열 뒤집기sb.reverse();
toString()문자열로 반환String str = sb.toString();
setCharAt(int index, char ch)특정 인덱스 문자 수정sb.setCharAt(2, 'Z');
length()현재 길이 반환sb.length();
charAt(int index)문자 하나 조회sb.charAt(0);

1. append - 문자열 추가

public class StringBuilderExample {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("hello");

        sb.append(" world");             // hello world
    }
}

2. insert - 특정 위치에 삽입

public class StringBuilderExample {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("hello");
       
        sb.append(" world");             // hello world
        sb.insert(0, "Say ");            // Say hello world
    }
}

3. setCharAt - 특정 인덱스 문자 수정

public class StringBuilderExample {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("hello");

        sb.append(" world");             // hello world
        sb.insert(0, "Say ");            // Say hello world
        sb.setCharAt(4, 'H');            // Say Hello world

    }
}

4. delete - 구간 삭제

public class StringBuilderExample {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("hello");

        sb.append(" world");             // hello world
        sb.insert(0, "Say ");            // Say hello world
        sb.setCharAt(4, 'H');            // Say Hello world
        sb.delete(0, 4);                 // Hello world
    }
}

5. reverse()

public class StringBuilderExample {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("hello");

        sb.append(" world");             // hello world
        sb.insert(0, "Say ");            // Say hello world
        sb.setCharAt(4, 'H');            // Say Hello world
        sb.delete(0, 4);                 // Hello world
        sb.reverse();                    // dlrow olleH
    }
}

StringBuilder 메서드를 이용하면 방금 풀었던 BOJ10988팰린드롬인지확인하기 문제도 쉽게 풀 수 있다.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String reversed = new StringBuilder(str).reverse().toString();

if (str.equals(reversed)) {
    System.out.println("1");
} else {
    System.out.println("0");
}
profile
Swimming is good at loss Weight

0개의 댓글