■ 정의
- 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 |
댓글