Menu
Coddy logo textTech

문자열 토크나이저

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()를 사용하세요.

challenge icon

챌린지

쉬움

두 개의 인자를 받는 tokenizeText라는 이름의 메서드를 생성하세요:

  1. 토큰화할 문자열 (text)
  2. 구분할 기준이 되는 문자열 (delimiter)

이 메서드는 다음을 수행해야 합니다:

  1. 주어진 text와 delimiter를 사용하여 StringTokenizer를 생성합니다
  2. 토큰 개수와 각 토큰을 새 줄에 포함하는 문자열을 반환합니다

반환 메시지는 다음과 같아야 합니다:

  • 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));
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨