자바로 백준 문제를 풀게되면
필연적으로 BufferedReader로 풀게되고,
거기서 문자열을 처리하는데 StringBuilder와 StringTokenizer을 자주 쓰게 된다.
언제 이 둘을 쓰는지 비교해보겠다.
1. StringBuilder
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10; i++) {
sb.append(i).append(" ");
}
String result = sb.toString();
System.out.println(result);
br.close();
문자열을 여러 번 빌드하거나 조작해야할 때 Stringbuilder을 사용한다.
주요 메서드
1. append()
지정된 값을 문자열의 끝에 추가한다.
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" ");
sb.append("world");
"Hello world"
2. insert()
지정된 위치에 값을 삽입한다.
StringBuilder sb = new StringBuilder("Hello world");
sb.insert(5, "beautiful ");
"Hello beautiful world"
3. delete()
지정된 범위의 문자열을 삭제한다.
StringBuilder sb = new StringBuilder("Hello beautiful world");
sb.delete(5, 14);
"Hello world"
4. replace()
지정된 범위의 문자열을 주어진 문자열로 교체한다.
StringBuilder sb = new StringBuilder("Hello beautiful world");
sb.replace(6, 15, "wonderful");
"Hello wonderful world"
5. toString()
현재 StringBuilder 객체에 있는 문자열을 String으로 변환한다.
StringBuilder sb = new StringBuilder("Hello world");
String result = sb.toString();
"Hello world"
6. length()
현재 StringBuilder 객체에 있는 문자열의 길이를 반환한다.
StringBuilder sb = new StringBuilder("Hello world");
int len = sb.length();
11
7. capacity()
현재 StringBuilder 객체의 용량을 반환한다.
StringBuilder sb = new StringBuilder();
int cap = sb.capacity();
16
2. StringToknenizer
//공백 기준으로 단어 분리
StringTokenizer st = new StringTokenizer("Hello, world! This is StringTokenizer.", " ");
while (st.hasMoreTokens()) {
String token = st.nextToken();
System.out.println(token);
}
}
입력 문자열을 특정 구분자를 기준으로 여러 개의 토큰으로 분리해야 할 때
ex) 공백을 기준으로 단어를 분리
단어를 추출해야 하는 경우 사용된다.
1. StringTokenizer(String str)
지정된 문자열을 기본 구분자(공백, 탭, 줄바꿈 등)을 기준으로 분리하는 StringTokenizer 객체 생성
2. StringTokenizer(String str, String delim)
지정된 문자열을 주어진 구분자 기준으로 분리하는 객체 생성
3. hasMoreTokens()
토큰이 남아있는지의 여부 반환
StringTokenizer st = new StringTokenizer("Hello, world! This is StringTokenizer.");
while (st.hasMoreTokens()) {
// 처리할 토큰이 있는지 확인 후 처리
}
4. nextToken()
다음 토큰 반환
StringTokenizer st = new StringTokenizer("Hello, world! This is StringTokenizer.");
while (st.hasMoreTokens()) {
String token = st.nextToken();
// token 처리
}
5. countTokens()
남아 있는 토큰의 개수 반환
StringTokenizer st = new StringTokenizer("Hello, world! This is StringTokenizer.");
int numTokens = st.countTokens();
'자료구조 > 알고리즘 기초수학' 카테고리의 다른 글
그래프 탐색 (0) | 2024.08.12 |
---|---|
재귀와 완전탐색 (0) | 2024.08.06 |
Hash Table / Deque (5) | 2024.07.16 |
선형 자료구조 스택, 큐, 리스트 (0) | 2024.07.08 |
이항계수, 동적계획법 (0) | 2024.07.06 |