본문으로 바로가기

[Java] StringBuilder 사용 방법 및 주요 메소드

category JAVA 2022. 6. 16. 23:04
728x90

주제

  • 정의
  • StringBuilder 사용 방법
  • 주요 메소드

정의

  • String 클래스는 한번 생성되면 문자열이 변경되지 않는 불변(immutable)한 성질을 보유
  • 기존 문자열에 새로운 문자열을 추가하고자 하는 경우 메모리에서 문자열이 추가되지 않음
  • 추가는 새로운 메모리가 할당되어 문자열이 생성됨
  • 문자열을 추가, 변경을 할 때마다 새로운 메모리가 할당되는것은 자원 낭비이기때문

StringBuilder 사용 방법

  • 문자열의 변경이나 이어 붙이는 경우 추가 메모리 생성없이 기존 문자열이 확장 되는 클래스
  • 빈번한 문자열 변경시 사용하면 성능이 좋음
  • 멀티쓰레드 환경에서 문자열의 안전한 변경을 보장해주지 않는 특징 보유

사용방법

import java.lang.StringBuilder;

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

        // 문자열 추가
        System.out.println(sb.append("bbb")); // aaabbb
        System.out.println(sb.append("ccc")); // aaabbbccc
        System.out.println(sb.append(3));     // aaabbbccc3
        // 문자열 삽입
        System.out.println(sb.insert(2, "ccc"));    // aacccabbbccc3

        // 문자열 치환, 문자열 교체
        System.out.println(sb.replace(3, 6, "ye")); // aacyebbbccc3

        // 인덱싱, 문자열 자르기
        System.out.println(sb.substring(5));    // bbbccc3
        System.out.println(sb.substring(3, 7));     // yebb

        // 문자 삭제
        System.out.println(sb.deleteCharAt(3));     // aacebbbccc3

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

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

        // 문자열 뒤집기
        System.out.println(sb.reverse());   // caa

        // 문자 대체, 문자 교체, 문자 치환
        sb.setCharAt(1, 'b');   // cba
        System.out.println(sb);

        // 문자열 길이 조정
        sb.setLength(2);
        System.out.println(sb);     // cb
    }

메소드

메소드명 기능
append() 문자열 추가
insert(int offset, String str) offset위치에 str을 추가
replace(int offset, int offset, String str) 첫번째와 두번째 파라미터로 받는 숫자 인덱스에 위치한 문자열 대체
substring(int start, (int end)) 인덱싱. 파라미터가 하나라면 해당 인덱스부터 끝까지, 두개라면 시작점과 끝점-1 까지 인덱싱
deleteCharAt(int index) 인덱스에 위치한 문자 하나를 삭제한다
delete(int start, int end) start부터 end-1까지의 문자를 삭제
toString() String으로 변환한다
reverse() 해당 문자 전체를 뒤집는다
setCharAt(int index, String s) index 위치의 문자를 s로 변경
setLength(int len) 문자열 길이 조정, 현재 문자열보다 길게 조정하면 공백으로 채워지고 짧게 조정하면 나머지 문자 삭제
trimToSize() 문자열이 저장된 char[] 배열 사이즈를 현재 문자열 길이와 동일하게 조정, String 클래스의 trim()이 앞 뒤 공백을 제거하는 것과 같이 공백 사이즈를 제공하는 것, 배열의 남는 사이즈는 백이라 문자열 뒤부분 공백을 제거하는거라고 생각하면됨
728x90

'JAVA' 카테고리의 다른 글

[Java] 입출력 BufferReader / BufferedWriter  (0) 2022.06.16