StringBuilder란? StringBuilder 사용 방법

2023. 3. 6. 21:00·Language/Java

오늘 알고리즘을 공부하는 중에 StringBuilder를 사용하는것이 나와서 StringBuilder에 대해서 탐구해 보았습니다.

StringBuilder를 사용하는 이유

자바에서는 문자열을 사용할 때 대개 String객체를 이용하게 된다.

이 String 객체를 덧셈 연산을 하게 되면 새로운 String 객체가 생성이 된다.

String a = "abc"
String b = "def"
String c = a + b  //abcdef

String 객체는 한 번 생성되면 내용을 바꿀 수 없기때문에, 하나의 문자열을 다른 문자열과 연결하게 되는 순간 새로운 문자열 객체가 생성되게 되고, 이전 문자열은 가비지컬렉터로 들어가게 된다.

이런 String객체를 더하게 되면 객체가 생성되면서 메모리를 사용하게 되고, 이러한 연산이 많아질수록 성능저하가 일어나게 된다.

이런 경우에 StringBuilder를 사용하게 되는데,

StringBuilder는 변경 가능한 문자열을 만들어주기 때문에 문자열 연산을 진행해도 새로운 객체가 생성되지 않으므로 객체성성으로 인한 성능저하를 막을 수 있다.

StringBuilder 사용법과 자주 사용하는 메서드

생성자

  • StringBuilder sb = new StringBuilder() : 객체 선언
  • StringBuilder sb = new StringBuilder(String str) : str이 들어간 StringBuilder클래스를 바로 생성

메소드

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

사용 예시

    public ArrayList<String> solution(int n, String[] str) {
        ArrayList<String> answer = new ArrayList<>();
        for (String x : str) {
            String tmp = new StringBuilder(x).reverse().toString();
                        //문자열 x를 거꾸로 뒤집고 String객체로 반환
            answer.add(tmp);
        }

        return answer;
    }

 

참고

https://onlyfor-me-blog.tistory.com/317

https://da2uns2.tistory.com/entry/Java-StringBuilder-사용법과-주요-메소드

반응형
저작자표시 (새창열림)
'Language/Java' 카테고리의 다른 글
  • Java 17 변경점
  • [JAVA] Stream - Collector(콜렉터), Stream을 List,Set으로 반환
  • Optional : null값에 대한 처리
  • [Java] 컬렉션(Collection), 제네릭(Generic) - Set, List, Map
LightSource
LightSource
어제보단 발전한 오늘의 나를 위한 블로그
    반응형
  • LightSource
    LightSourceCoder
    LightSource
  • 전체
    오늘
    어제
    • 분류 전체보기 (152)
      • Git (4)
      • Language (6)
        • Java (6)
      • Back-End (63)
        • Spring Boot (4)
        • MyBatis (1)
        • Oracle (1)
        • PL SQL (3)
        • JPA (26)
        • Spring Data JPA (5)
        • Spring MVC (8)
        • Spring (12)
        • Spring Security (2)
        • Redis (1)
      • Front-End (38)
        • 아이오닉 (2)
        • JSP (7)
        • JavaScript (4)
        • React (16)
        • TypeScript (3)
        • Angular (6)
      • AWS (1)
      • CI & CD (1)
      • 개발지식 (13)
        • 네트워크 (9)
        • CS 지식 (4)
      • 데이터모델링 (2)
      • Tool (1)
      • 프로젝트 (5)
      • 독후감 (2)
      • 잡생각 (0)
      • 면접 준비 (1)
      • 알고리즘 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    react
    배요소열추가
    배열요소수정
    배열요소삭제
    리액트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
LightSource
StringBuilder란? StringBuilder 사용 방법
상단으로

티스토리툴바