StringBuffer 사용법

이정연·2023년 6월 19일

자바기초

목록 보기
8/25
  • String 클래스의 인스턴스는 한 번 생성되면 그 값을 변경 할 수 없다

  • StringBuffer 클래스의 인스턴스는 변경할 수 도 있고, 추가할 수 도있다.

  • 이를 위해 StringBuffer 클래스는 내부적으로 버퍼(buffer)라고 하는 독립적인 공간을 가진다.

  • 버퍼 크기의 기본값은 16개의 문자를 저장 할 수 있는 크기임

  • String 클래스를 이용한 연산보다 StringBuffer 인스턴스를 사용하면 공간의 낭비도 줄일 수 있고, 내부적인 속도도 매우 빨라진다.

메서드

append()

  • 인수로 전달된 값을 문자열로 변환 후 해당 문자열의 마지막에 추가한다.
  • String의 concat() 메서드와 같은 결과를 반환하지만, 내부적인 처리속도가 빠르다.
StringBuffer str = new StringBuffer("Java");
System.out.println(str.append(" programming"));
System.out.println(str);
//Java programming
  • concat()
StringBuffer str = new String("Java");
System.out.println(str.concat(" programming"));
System.out.println(str);
//Java programming

모양은 같다.

capacity()

  • StringBuffer 인스턴스의 현재 버퍼 크기를 반환
StringBuffer str01 = new StringBuffer();
StringBuffer str02 = new StringBuffer("Java");
System.out.println(str01.capacity());
System.out.println(str02.capacity());
//16
//20

delete()

  • 전달된 인덱스에 해당하는 부분 문자열을 제거한다.
StringBuffer str = new StringBuffer("Java Oracle");
System.out.println(str.delete(4, 8));
System.out.println(str.deleteCharAt(1));
//Javacle
//Jvacle
  • delete() 메서드를 사용하여 해당 문자열에서 인덱스가 4인 위치의 문자부터 7인 위치의 문자까지를 삭제하고 있다.
  • deleteCharAt() 메서드는 특정 위치의 문자 한개만 제거한다. 이때 위에서 이미 delete()가 적용되어있기때문에 그 상태에서 적용된다.

insert()

  • 인수로 전달된 값을 문자열로 변환 후 해당 문자열의 지정된 인덱스 위치에 추가
StringBuffer str = new StringBuffer("Java Programming!!");
System.out.println(str.insert(4, "Script"));
//JavaScript Programming!!

인덱스가 4인a 뒤에 Script가 추가된다.

profile
반갑습니다.

0개의 댓글