Java 입문 | java.util 패키지 | StringTokenizer 클래스


StringTokenizer 클래스는 String 객체의 문자열을 특정한 구분 문자(Delimiter)로 여러 개의 토큰(Token) 문자열로 나눠준다. 구분 문자로는 특수 문자뿐 아니라 공백(space), 한 문자부터 여러 문자의 문자열로도 사용 가능하다. StringTokenizer 클래스는 Enumeration 인터페이스로 이용하였기 때문에, 나눠진 문자열은 열거형태로 존재한다.

StringTokenizer 생성자

생성자 설명
StringTokenizer(String str) 디폴트 생성자.
StringTokenizer(String str, delim) 구분 문자(delim)를 인자로 받는 생성자.
StringTokenizer(String str, String delim, boolean returnDelims) 구분 문자(delim)와 구분문자의 반환 여부를 인자로 받는 생성자.

StringTokenizer 메소드

메소드 설명
int countTokens 나눠진 토큰의 수를 반환한다.
boolean hasMoreElements() 반환할 다음 요소가 있으면 true, 없으면 false를 반환한다. hasMoreTokens()와 동일하다.
boolean hasMoreTokens() 반환할 다음 토큰이 있으면 true, 없으면 false를 반환한다.
Object hasMoreElements() 나눠진 토큰의 수를 반환한다. Object를 반환하지만 실제는 String이다.
String hasMoreTokens() 나눠진 토큰의 수를 반환한다.
String nextToken() 다음 토큰을 반환한다. 이전 토큰은 제거한다.
String nextToken(String delim) 구분 문자(delim)를 변경 후 변경 다음 토큰을 반환한다.

StringTokenizer 예제

예제 1)

package com.devkuma.tutorial.java.util;

import java.util.StringTokenizer;

public class StringTokenizerClass {

    public static void main(String[] args) {

        String str = "java,c,c++,c#,scala,xml,javascript";
        StringTokenizer st = new StringTokenizer(str, ",");

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

실행 결과는 아래와 같다.

java
c
c++
c#
scala
xml
javascript

예제 2)

package com.devkuma.tutorial.javautil;

import java.util.StringTokenizer;

public class StringTokenizerClass2 {

    public static void main(String[] args) {

        String str = "java,c,c++,c#,scala,xml,javascript";
        StringTokenizer st = new StringTokenizer(str, ",", true);

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

실행 결과는 아래와 같다.

java
,
c
,
c++
,
c#
,
scala
,
xml
,
javascript