본문 바로가기

Language/JAVA

[JAVA] 자바 StringBuilder 주요 메소드

설명

자바에서 String 객체는 변경이 불가능하다.

 

String str = "ABC";

str += "DEF";

 

따라서 위의 코드를 실행했을 때,

기존 ABC를 갖고 있던 공간에 DEF를 붙이는 것이 불가능하다. (ABC라고 정해둔 문자열을 변경하는 것이기 때문)

그래서 자바는 새로운 저장 공간을 만들어 ABCDEF 값을 복사해서 넣고, 기존 저장 공간을 버린다.

이 과정에서 불필요한 작업이 발생하고 특히 문자열의 길이가 길다면 문제가 생길 수 있다.

 

 

위의 문제를 해결하는 것이 StringBuilder

새로운 저장 공간을 만들지 않고, 문자열을 유연하게 변경할 수 있어 효율적이다.

 

 

 

주요 메소드

    • append (String s) : 문자열을 추가한다. 기존 문자열에 문자열을 이어 붙인다.
    • insert (int offset, String s) : offset 위치에 문자열 s를 추가한다.
    • indexOf(String str) : str이 위치하고 있는 인덱스 값을 반환한다.
    • replace(int start, int end, String s) : start부터 end-1 인덱스에 있는 문자열을 문자열 s로 대체한다.
    • substring(int start) : start부터 끝까지의 문자열을 얻는다.
    • substring(int start, int end) : start부터 end-1인덱스 까지의 문자열을 얻는다.
    • delete(int start, int end): start부터 end-1 인덱스에 있는 문자열을 지운다.
    • toString() : String으로 변환한다. 
    • reverse() : 문자열을 역순으로 뒤집는다.

 

 

 

 

예시
import java.util.ArrayList;

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

        // 문자열 추가
        System.out.println(sb.append("AAA")); // AAA
        System.out.println(sb.append(32)); // AAA32

        // 문자열 삽입
        System.out.println(sb.insert(1, "BBC")); // ABBCAA32

        // 문자열 위치(인덱스)
        System.out.println(sb.indexOf("BBC")); // 1

        // 문자열 교체
        System.out.println(sb.replace(2, 5, "DE")); // ABDEA32

        // 문자열 자르기
        System.out.println(sb.substring(5)); // 32
        System.out.println(sb.substring(1, 4)); // BDE

        // 문자열 삭제
        System.out.println(sb.delete(3, sb.length())); // ABD

        // 문자열 변환
        System.out.println(sb.toString()); // ABD

        // 문자열 역순 뒤집기
        System.out.println(sb.reverse()); // DBA
    }
}

 

 

 

결과

'Language > JAVA' 카테고리의 다른 글

[JAVA] 자바 String 클래스 주요 메소드  (0) 2022.10.26
[JAVA] 자바 Character.메소드 정리  (0) 2022.10.25
[JAVA] 자바 ArrayList  (0) 2022.10.12
[JAVA] 자바 substring()  (0) 2022.10.04
[JAVA] 자바 indexOf()  (0) 2022.10.04