danc
danc*dev
danc
  • 분류 전체보기
    • codestates_BE_bootcamp39
      • 주단위 일기
      • 회고
    • programming
      • JAVA
      • SPRING
      • GENERAL
      • LINUX
      • ALGORITHM
      • ERROR_HANDLING
    • web
      • NETWORK
      • DB
      • HTML
      • CSS
    • kr
    • nz

최근 글

인기 글

태그

  • TIL일기
  • css
  • TIL
  • React에서 Authorization헤더
  • TIL 일기
  • HTTP
  • 코드스테이츠
  • 코드스테이츠 백엔드
  • 윈도우 11 우분투
  • 일기
  • 회고
  • AOP

최근 댓글

티스토리

hELLO · Designed By 정상우.
danc
programming/JAVA

Java - [문자열] StringBuilder / StringBuffer

programming/JAVA

Java - [문자열] StringBuilder / StringBuffer

2022. 5. 4. 17:37

StringBuilder 

클래스 이름 그대로 문자열을 더해서 출력한다. (자세히 정리해서 추가할 것) 

String 클래스에서 만든 인스턴스는 한번 만들어진 이상 메모리 내부에서 변경이 불가능하다. 일반적으로 문자열을 결합하는 연산과정은 메모리 내부에서 새로운 문자열이 만들어지는 상태이다. 하지만 StringBuilder 클래스는 문자열 결합을 할 때 String처럼 새로운 문자열을 만드는 것이 아닌 기존에 문자열에 추가하는 방식이다. 

public class Main {
    public static void main(String[] args) {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("문자열 ").append("연결");
        String str = stringBuilder.toString();
        System.out.println(stringBuilder);
        System.out.println(str);
    }
}
문자열 연결
문자열 연결

먼저 StringBuilder의 객체를 new로 생성 후, append ( )의 인덱스에 추가하고 싶은 문자열을 넣고 StringBuilder의 객체를 통하여 호출한다. 출력을 할 때에는 toString( )을 붙인다. String 변수에도 마찬가지

 

StringBuffer

String클래스에서 + 를 이용해 인스턴스의 문자열을 결합하면 내용이 합쳐진 새로운 인스턴스를 만든다. 그래서 많이 결합하면 할수록 공간의 낭비와 속도가 많이 느려지게 된다. 또한 인스턴트가 한번 생성되고 나면 값을 읽기만 할 수 있고 변경할 수는 없다. 하지만 StringBuffer클래스는 내부에 버퍼가 존재하여 기본적으로 16개의 문자를 저장할 수 있고 생성자를 통해 크기를 조절할 수도 있다. 생성 시 설정 크기보다 항상 16개의 문자를 추가로 저장할 수 있는 크기로 생성된다. 또한 StringBuffer 인스턴스는 문자열을 바로 추가할 수 있어 공간관리와 속도 측면에서 매우 유리하다.

스트링 버퍼의 메서드

1. append( )

인덱스로 받은 값을 문자열로 변환하고 해당 문자열의 마지막에 추가한다. String 클래스 의 concat( ) 메서드와 같은 결과이지만 내부 처리속도 측면에서는 훨씬 빠르다. 

 

2.  capacity( )

StringBuffer 인스턴스의 현재 버퍼 크기를 return 

 

StringBuffer str01 = new StringBuffer();
StringBuffer str02 = new StringBuffer("Java");
System.out.println(str01.capacity());
System.out.println(str02.capacity());

3. delete( )

전달받은 인덱스에 해당하는 부분의 문자열을 제거한다. deleteCharAt( )메서드를 쓰면 특정 위치의 문자 하나만을 제거할 수도 있다. 

StringBuffer str = new StringBuffer("Java Oracle");
System.out.println("문자열 : " + str);
System.out.println(str.delete(4, 8));
System.out.println(str.deleteCharAt(1));
System.out.println("deleteCharAt() 메소드 호출 후 문자열 : " + str);

 

4. insert( )

인덱스로 받은 값을 문자열로 바꾼 후 해당 문자열의 지정된 인덱스 위치에 추가한다. 전달된 인덱스가 해당 문자열의 길이와 같으면 append( ) 메서드와 동일한 결과를 반환 

StringBuffer str = new StringBuffer("Java Programming!!");
System.out.println("문자열 : " + str);
System.out.println(str.insert(4, "Script"));
System.out.println("insert() 메서드 호출 후 문자열 : " + str);

 

 

StringBuffer (Java Platform SE 7 )

Inserts the string into this character sequence. The characters of the String argument are inserted, in order, into this sequence at the indicated offset, moving up any characters originally above that position and increasing the length of this sequence by

docs.oracle.com

저작자표시 (새창열림)

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

Java - Type  (0) 2022.05.04
Java - 변수 / 상수 / 타입변환  (0) 2022.05.04
Java - [문자열] StringTokenizer  (0) 2022.05.04
Java - [문자열] String  (0) 2022.05.04
JAVA  (0) 2022.05.04
  • StringBuilder 
  • StringBuffer
'programming/JAVA' 카테고리의 다른 글
  • Java - 변수 / 상수 / 타입변환
  • Java - [문자열] StringTokenizer
  • Java - [문자열] String
  • JAVA
danc
danc
Backend 개발자를 목표로 공부 중 입니다.

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.