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 |