어제 오늘 내일

[Java StringTokenizer] 주요 메소드 정리와 활용 예제 본문

IT/Java

[Java StringTokenizer] 주요 메소드 정리와 활용 예제

hi.anna 2025. 10. 6. 07:21

문자열을 구분자(delimiter)를 기준으로 분리해야 할 때 보통은 String.split()이나 Pattern.split()을 많이 사용합니다. 하지만 Java에서는 예전부터 제공되던 StringTokenizer 클래스도 문자열 분리에 활용할 수 있습니다. 레거시 클래스이긴 하지만, 간단한 토큰 분리 작업에는 여전히 사용하기 좋습니다.

 

1. StringTokenizer 클래스 개요

  • 문자열을 구분자(delimiter) 기준으로 토큰(token) 단위로 분리
  • 기본 구분자는 공백(스페이스, 탭, 줄바꿈)
  • 커스텀 구분자 지정 가능 (예: ,, ;, |)

 

2. 생성자

public StringTokenizer(String str)
public StringTokenizer(String str, String delim)
public StringTokenizer(String str, String delim, boolean returnDelims)
  • str : 분리할 문자열
  • delim : 구분자 지정
  • returnDelims : true이면 구분자 자체도 토큰으로 반환

 

3. 주요 메소드

  • boolean hasMoreTokens() : 다음 토큰이 있는지 확인
  • String nextToken() : 다음 토큰 반환
  • int countTokens() : 남은 토큰 개수 확인

 

4. 기본 사용 예제

import java.util.StringTokenizer;

public class StringTokenizerExample {
    public static void main(String[] args) {
        String input = "apple banana orange";
        StringTokenizer st = new StringTokenizer(input);

        while (st.hasMoreTokens()) {
            System.out.println(st.nextToken());
        }
    }
}

출력 결과:

apple
banana
orange

기본 구분자가 공백이므로 공백 기준으로 문자열이 나눠집니다.

 

 

5. 커스텀 구분자 사용 예제

import java.util.StringTokenizer;

public class StringTokenizerDelimiterExample {
    public static void main(String[] args) {
        String input = "apple,banana;orange|grape";
        StringTokenizer st = new StringTokenizer(input, ",;|");

        while (st.hasMoreTokens()) {
            System.out.println(st.nextToken());
        }
    }
}

출력 결과:

apple
banana
orange
grape

쉼표, 세미콜론, 파이프 기호 모두 구분자로 지정되어 처리됩니다.

 

 

6. 구분자도 포함시키는 예제

import java.util.StringTokenizer;

public class StringTokenizerReturnDelimExample {
    public static void main(String[] args) {
        String input = "Java,Python,C++";
        StringTokenizer st = new StringTokenizer(input, ",", true);

        while (st.hasMoreTokens()) {
            System.out.println(st.nextToken());
        }
    }
}

출력 결과:

Java
,
Python
,
C++

구분자 , 도 토큰으로 반환됩니다.

 

 

7. 활용 사례

  • 간단한 문자열 분리 작업
  • 여러 구분자가 섞여 있는 문자열 처리
  • 파일 입력 시 토큰 단위 데이터 추출

 

정리

StringTokenizer는 간단히 문자열을 분리할 때 유용하지만, 정규표현식이 필요한 복잡한 분리 작업에는 String.split()이나 Pattern.split()을 쓰는 것이 더 좋습니다. 그래도 빠르고 가벼운 문자열 분리에 적합한 도구로 알아두면 유용합니다.

 

 

 

반응형
Comments