본문 바로가기
Java/TIL (Today I Learned)

[JAVA] StringBuilder

by 정재인 2023. 2. 6.

 정의

 - StringBuilder 클래스의 인스턴스는 그 값을 변경할 수 있고, 추가할 수 있는 가변객체(mutable)
=> 문자열을 바로 추가할 수 있으므로, 공간의 낭비도 없으며 속도도 매우 빨라짐.

 - 동기화 되어있지 않다.
=> StringBuffer에 비해 가벼움. 특별한 이유가 없다면 StringBuilder를 사용하는 것이 일반적.

 

 생성자

StringBuilder sb = new StringBuilder();              // 객체선언
StringBuilder sb = new StringBuilder("str");       // 문자열을 바로 넣을 수도 있음

 

메소드 종류 

메소드 의미 반환형
append() 인수로 전달된 값을 문자열로 변환한 후, 해당 문자열의 마지막에 추가 StringBuilder
capacity() 현재 용량 변환 int
delete(int start, int end) 전달된 인덱스에 해당하는 부분 문자열을 해당 문자열에서 제거 StringBuilder
deleteCharAt(int index) 전달된 인덱스에 해당하는 문자를 해당 문자열에서 제거 StringBuilder
insert() 인수로 전달된 값을 문자열로 변환한 후, 해당 문자열의 지정된 인덱스 위치에 추가 StringBuilder
reverse() 해당 문자열의 인덱스를 역순으로 재배열 StringBuilder
toString() String으로 변환 String

 

 사용 예 (백준 No.2908)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class No2908 {
	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		
		int a = Integer.parseInt(new StringBuilder(st.nextToken()).reverse().toString());
		int b = Integer.parseInt(new StringBuilder(st.nextToken()).reverse().toString());

		if(a > b)
			System.out.println(a);
		else
			System.out.println(b);
		
	}

}

 


 백준 No.2908

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net

 

'Java > TIL (Today I Learned)' 카테고리의 다른 글

[JAVA] 유클리드 호제법(GCD / LCD)  (0) 2023.03.15
[JAVA] contains() / replace()  (0) 2023.02.07
[JAVA] Overloading / Overriding  (0) 2023.01.30
[JAVA] EOF (End Of File)  (0) 2023.01.28
[JAVA] BufferedReader / BufferedWriter  (0) 2023.01.26

댓글