알아가기/Java

[Java] 토큰으로 분리하는 StringTokenizer

XEV 2023. 8. 27. 00:47

Java에서 제공하는 클래스인 `StringTokenizer`는 문자열의 형태를 지정된 구분자(delimiter)를 기준으로 하여 토큰(token) 형식으로 분리하는 역할을 한다. 이 클래스는 주로 텍스트 데이터를 파싱하거나 분리할 때 사용된다. `StingTokenizer`는 간단한 문자열 파싱에 유용하지만,  더 복잡한 문자열 처리는 String의 `split()` 메서드나 정규식을 사용하는 것이 더 적합할 수 있다.

 

 

 

 

 

StringTokenizer 주요 메서드

hasMoreTokens(): 아직 처리하지 않은 토큰이 남아있는지 여부를 반환

nextToken(): 다음 토큰을 반환하고 내부 포인터를 다음으로 이동시킴

nextToken(String delimiter): 지정된 delimiter를 사용하여 다음 토큰을 반환

 

 

 

 

 

nextToken() 메서드 작동 방식

1. StringTokenizer 객체가 생성될 때 입력된 문자열을 지정된 구분자(delimiter)로 분리하여 토큰들로 나눔

2. nextToken() 메서드가 호출되면 현재 내부 포인터가 가리키는 위치의 토큰을 반환

3. 내부 포인터는 다음 토큰으로 이동

 

 

 

 

 

StringTokenizer 사용, nextToken() 작동

import java.util.StringTokenizer;

public class StringTokenizerExample {
    public static void main(String[] args) {
        String input = "Hello,World,Java";
        StringTokenizer st = new StringTokenizer(input, ",");

        System.out.println("Initial Position: " + st.toString());

        while (st.hasMoreTokens()) {
            String token = st.nextToken();
            System.out.println("Token: " + token);
            System.out.println("Position after nextToken(): " + st.toString());
        }
    }
}



/*
Initial Position: java.util.StringTokenizer@hashcode  // 내부 포인터 시작
Token: Hello
Position after nextToken(): java.util.StringTokenizer@hashcode  // 내부 포인터 이동
Token: World
Position after nextToken(): java.util.StringTokenizer@hashcode  // 내부 포인터 이동
Token: Java
Position after nextToken(): java.util.StringTokenizer@hashcode  // 내부 포인터 이동
*/