Menu
CoddyTech

문자열 토크나이저

Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨. 59개 중 48번째.

StringTokenizer는 구분자를 기준으로 문자열을 토큰(더 작은 부분)으로 나누는 데 사용됩니다. 기본적으로 공백을 구분자로 사용합니다.

기본 구분자(공백)로 StringTokenizer를 만듭니다:

StringTokenizer st = new StringTokenizer("Hello World Java");

다른 문자로 분리하려면 해당 문자를 두 번째 인수로 전달합니다. 해당 문자열의 각 문자는 개별 구분자로 사용됩니다:

StringTokenizer st = new StringTokenizer("one,two;three", ",;");
System.out.println(st.countTokens());  // 출력: 3

토큰 개수를 확인하고 가져오기:

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. 토큰화할 String(text)
  2. 기준으로 분할할 String(delimiter)

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

  1. 주어진 텍스트와 구분자로 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실력 점검

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

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Java 컴파일러