StringTokenizer
JAVA에서 문자열을 공백이나 특정 구분자 기준으로 쪼개서 하나씩 꺼내 쓸 수 있게 해주는 클래스.
특히 공백으로 나눠진 여러 개의 숫자나 단어를 처리할 때 자주 사용.
split() 보다 빠르고 가볍다.
BufferedReader 없이 어디든 사용 가능
예시)
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
String line = "10 20 30";
StringTokenizer st = new StringTokenizer(line, " ");
while (st.hasMoreTokens()) {
String token = st.nextToken();
System.out.println(token);
}
}
}
/*
출력 결과
10
20
30
*/
hasMoreToekns() : 꺼낼 토큰이 남아있는지 확인
nextToken() : 다음 토큰 하나 반환
countTokens() : 남은 토큰 개수 반환
예시) # 15552 빠른 A+B
** StringTokenizer와 split()의 차이
| StringTokenizer | split() |
| 토큰을 하나씩 꺼낸다. | 배열 반환 (String[]) |
| 더 빠름 | 느림 |
| 정규식이 불가 | 정규식 가능 |
| 반복할 때 .hasMoreTokens() 사용 | 배열 길이만큼 반복 |
** nextLine()과 nextToken()
nextLine()
BufferedReader.readLine()에서 사용
한 줄 전체를 String으로 읽음
ex) "10 20" → "10 20" (공백 포함 문자열 전체)
nextToken()
StringTokenizer에서 사용
공백 등 구분자 기준으로 나눈 조각 하나를 가져옴
ex) "10 20" → "10", "20" 으로 나눠서 꺼냄
'공부 > JAVA' 카테고리의 다른 글
| [JAVA] 중복을 허용하지 않는 HashSet (0) | 2025.05.14 |
|---|---|
| [JAVA] BufferedReader와 BufferedWriter (0) | 2025.04.30 |
| [JAVA] 문자열 비교 equals() (0) | 2025.04.08 |
| [Java] 특정 문자 인덱스, 배열 인덱스를 찾는 indexOf() (0) | 2025.02.23 |
| [JAVA] ArrayList (0) | 2025.02.08 |