언어(Language)/Java

[Java] 자바 StringTokenizer 클래스 정리 (문자열 분리 토큰)

잇트루 2022. 9. 8. 22:01
반응형

Stringtokenizer class

StringTokenizer 클래스는 문자열을 사용자가 지정한 구분자로 문자열을 분리시키는 클래스이다. 사용자에 의해 분리된 문자열들을 토큰(Token)이라 한다.

 

먼저, StringTokenizer를 사용하기 위해서는 해당 클래스의 모듈을 import 해야 한다.

import java.util.StringTokenizer; 명령어를 통해 모듈을 불러올 수 있다.

import java.util.StringTokenizer;

public class StringTokenizerEx {
    public static void main(String[] args) {
        String str = "Hello my name is Hong-Gildong, I'm studying Java.";

        // StringTokenizer 인스턴스 생성
        StringTokenizer tokenizer = new StringTokenizer(str);

        // 기존 문자열 출력
        System.out.println(str);
        // 토큰 메서드를 활용하지 않으면 제대로 출력이 되지 않음
        System.out.println(tokenizer);

        // countTokens() 메서드를 활용하여 남은 토큰 개수 확인 : 8
        System.out.println("남은 토큰 수:" + tokenizer.countTokens());
        
        // 반복문과 nextToken() 메서드를 활용하여 토큰들을 출력
        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());
        }
        
        // 다시 countTokens()를 확인하여 남은 토큰 개수 확인 : 0 (모두 사용)
        System.out.println("남은 토큰 수:" + tokenizer.countTokens());
    }
}

 

토큰을 생성할 때, 구분자를 지정하지 않으면 공백(” “)을 기준으로 문자열을 분리한다.

만약, 임의로 구분자를 지정하고자 한다면, 다음과 같이 인스턴스를 생성하면 된다.

import java.util.StringTokenizer;

public class StringTokenizerEx {
    public static void main(String[] args) {
        String str = "Hello my name is Hong-Gildong, I'm studying Java.";

        // StringTokenizer ","를 기준으로 구분한 인스턴스 생성
        StringTokenizer tokenizer = new StringTokenizer(str, ",");

        System.out.println("남은 토큰 수:" + tokenizer.countTokens());
        System.out.println(tokenizer.nextToken());
        System.out.println(tokenizer.nextToken());
        System.out.println("남은 토큰 수:" + tokenizer.countTokens());
    }
}

위 코드의 경우 “,”를 기준으로 문자열을 분리한 것이다.

따라서 토큰의 개수는 2개이며, 구분된 문자열은 각각 “Hello my name is Hong-Gildong”과 “ I'm studying Java."이다.

 

StringTokenizer class의 메서드

int countTokens() : 남아있는 토큰의 개수를 반환한다.

boolean hasMoreElements() : 현재 위치 뒤에 사용할 수 있는 토큰이 남아 있는 경우 true, 그렇지 않으면 false를 반환한다.

boolean hsMoreTokens() : boolean hasMoreElements()와 같은 기능이다.

Object nextElement() : 다음 토큰을 Object 타입으로 반환한다.

String nextToken() : 다음 토큰을 String 타입으로 반환한다.

반응형