StringTokenizer는 문자열을 특정 구분자로 나눌 때 사용하는 유용한 클래스이다. 기본적으로 공백을 기준으로 문자열을 나누며, 콤마나 다른 구분자를 지정할 수도 있다. BufferedReader와 자주 함께 쓰이며, 큰 입력을 효율적으로 처리할 수 있다.
import java.util.StringTokenizer;
public class StringTokenizerExample {
public static void main(String[] args) {
String input = "Java is a popular programming language";
// 공백을 기준으로 문자열 분리
StringTokenizer st = new StringTokenizer(input);
// 각 토큰 출력
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
}
출력 결과
Java
is
a
popular
programming
language
public class StringTokenizerExampleWithComma {
public static void main(String[] args) {
String input = "Apple,Banana,Cherry,Date";
// 콤마를 구분자로 지정
StringTokenizer st = new StringTokenizer(input, ",");
// 각 과일 이름 출력
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
}
출력 결과
Apple
Banana
Cherry
Date
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class BufferedReaderAndStringTokenizerExample {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력 예시: 2줄을 입력받고 각 줄에 공백으로 구분된 두 개의 숫자를 처리
int lines = 2;
for (int i = 0; i < lines; i++) {
// 한 줄을 입력받아 공백으로 분리
StringTokenizer st = new StringTokenizer(br.readLine());
int num1 = Integer.parseInt(st.nextToken());
int num2 = Integer.parseInt(st.nextToken());
System.out.println("Read numbers: " + num1 + " and " + num2);
}
br.close();
}
}
입력
10 20
30 40
출력 결과
Read numbers: 10 and 20
Read numbers: 30 and 40