사소한 개발지식/JAVA

JAVA - StringTokenizer (문자열 분리)

KimBY 2019. 11. 4. 17:37
728x90
반응형

StringTokenizer

 

 - String을 token단위로 끊어주는 클래스.

 - 기본적으로 공백문자('\t', '\n', \r', '\f')구획문자로 설정.

 - BufferedReader객체를 통해 한줄입력을 받았을 경우, 입력 기준에 따라 문자열을 구분하는 용도로 사용.

 

 

StringTokenizer 생성자

 

 - StringTokenizer(String str) : 구획문자(delimiter)를 인자로 받지않는 생성자.

 - StringTokenizer(String str, String delim)

   : 구획문자를 인자로 받는 생성자. 구획문자는 2자리 이상도 설정 가능.

     2자 이상의 구획문자를 받은 경우, 구획문자는 길이가 1로 고정이고 여러개의 구획문자로 설정.

 - StringTokenizer(String str, String delim, boolean returnDelims)

   : returnDelims가 true면 구획문자도 token으로 간주하여 리턴.

 

 

StringTokenizer 매서드

 

 - (int) countTokens() : 남은 token의 갯수를 리턴.

 - (String) nextToken() : 다음 token을 리턴. 이전 token 제거.

 - (String) nextToken(String delim) : 구획문자를 delim으로 변경한 후 다음 token을 리턴.

 - (boolean) hasMoreTokens() : 리턴할 다음 token이 있으면 true, 없으면 false

 

 

■ 예제코드

 

import java.util.StringTokenizer;

public class StringTokenizerExercise {

    public static void main(String[] args) {
        String test1 = "this is test String";
        String test2 = "this%is%test%%String";
        String test3 = "this%is$test#String";
        String test4 = "this%%is%$test$String";

        StringTokenizer st;

        // TEST1 : 공백문자로 구분하여 출력
        st = new StringTokenizer(test1);
        System.out.println(st.countTokens());
        while(st.hasMoreTokens()) {
            System.out.println(st.nextToken());
        }
        System.out.println(st.countTokens());

        // TEST2 : '%'을 구획문자로 구분하여 출력
        st = new StringTokenizer(test2, "%");
        while(st.hasMoreTokens()) {
            System.out.println(st.nextToken());
        }
        
        // TEST3 : '%', '$', '#'을 구획문자로 구분하여 출력 / 구획문자도 리턴
        st = new StringTokenizer(test3, "%$#", true);
        while(st.hasMoreTokens()) {
            System.out.println(st.nextToken());
        }
        
        // TEST4 : '%'를 구획문자로 구분하여 출력 하다가 '$'를 구획문자로 변경
        st = new StringTokenizer(test4, "%");
        System.out.println(st.nextToken());
        System.out.println(st.nextToken());
        System.out.println(st.nextToken("$"));
        System.out.println(st.nextToken());
        System.out.println(st.nextToken());
    }
}

 

 

■ 예제출력

 

TEST1 TEST2 TEST3 TEST4
4
this
is
test
String
0
this
is
test
String
this
%
is
$
test
#
String
this
is
%
test
String

 

 

참고 : https://arer.tistory.com/48

728x90
반응형