문자열 토크나이저
Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨 — 59개 중 48번째.
StringTokenizer는 구분자(delimiter)를 기준으로 문자열을 토큰(더 작은 부분)으로 나누는 데 사용됩니다. 기본적으로 공백을 구분자로 사용합니다.
기본 구분자(공백)를 사용하여 StringTokenizer를 생성합니다:
StringTokenizer st = new StringTokenizer("Hello World Java");토큰 개수 확인 및 가져오기:
int count = st.countTokens();
// 토큰의 개수를 가져옵니다
String first = st.nextToken();
// 다음 토큰을 가져옵니다위 코드를 실행한 후, 변수에는 다음이 포함됩니다:
count: 3
first: "Hello"중요: 토큰이 소모됩니다!
nextToken()을 호출하면 토크나이저에서 해당 토큰이 제거됩니다. countTokens() 메서드는 남은 토큰의 수를 반환합니다.
StringTokenizer st = new StringTokenizer("Hello World Java");
System.out.println(st.countTokens()); // 출력: 3
st.nextToken(); // "Hello"를 소비함
System.out.println(st.countTokens()); // 출력: 2 (3이 아님!)
st.nextToken(); // "World"를 소비함
System.out.println(st.countTokens()); // 출력: 1팁: 전체 토큰 수를 알아야 하는 경우, 토큰을 소비하기 전에 countTokens()를 호출하세요. 반복하는 동안 사용 가능한 토큰이 더 있는지 확인하려면 hasMoreTokens()를 사용하세요.
챌린지
쉬움두 개의 인자를 받는 tokenizeText라는 이름의 메서드를 생성하세요:
- 토큰화할 문자열 (
text) - 구분할 기준이 되는 문자열 (
delimiter)
이 메서드는 다음을 수행해야 합니다:
- 주어진 text와 delimiter를 사용하여 StringTokenizer를 생성합니다
- 토큰 개수와 각 토큰을 새 줄에 포함하는 문자열을 반환합니다
반환 메시지는 다음과 같아야 합니다:
- text가 null인 경우: "Invalid text"를 반환합니다
- delimiter가 null인 경우: 공백을 구분자로 사용합니다
- 형식: "Token count: X\nToken: token1\nToken: token2\n..."
직접 해보기
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static String tokenizeText(String text, String delimiter) {
// 여기에 코드를 작성하세요
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
String delimiter = scanner.nextLine();
if (text.equals("null")) text = null;
if (delimiter.equals("null")) delimiter = null;
System.out.println(tokenizeText(text, delimiter));
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.