Vienna

Chapter 9) java.lang 패키지와 유용한 클래스 - java.util.StringTokenizer 본문

언어/Java의 정석

Chapter 9) java.lang 패키지와 유용한 클래스 - java.util.StringTokenizer

아는개발자 2023. 5. 10. 23:07

◇ StringTokenizer?

긴 문자열을 지정된 구분자를 기준으로 토큰이라는 여러 개의 문자열로 잘라내는데 사용된다.
단, StringTokenizer는 구분자로 단 하나의 문자 밖에 사용하지 못한다.

 

책에서는 이것 뿐만 아니라 정규표현식을 사용한

String.split(String regex)이나 Scanner.useDelimiter(String pattern)를 사용할 수도 있다고 나와 있다.

(그럼 무엇이 더 빠를까? 주말에 조사해야겠다)

 

import java.util.*;

public class Main {
    public static void main(String[] args) {
        String source = "100,200,300,400";
        StringTokenizer st = new StringTokenizer(source, ",");
        while(st.hasMoreTokens()){
            System.out.println("st.nextToken() = " + st.nextToken());
        }
    }
}

기본적인 사용법 예제

import java.util.*;

public class Main {
    public static void main(String[] args) {
        String expression = "x=100*(200+300)/2";
        // "+-*/=()" 전체가 하나의 구분자가 아니라
        // 각각의 문자가 모두 구분자로 취급된다.
        StringTokenizer st = new StringTokenizer(expression, "+-*/=()", true);
        while(st.hasMoreTokens()){
            System.out.println("st.nextToken() = " + st.nextToken());
        }
    }
}

구분자도 토큰으로 간주하는 예제

split()은 데이터를 토큰으로 잘라낸 결과를 배열에 담아서 반환한다.

하지만 StringTokenizer의 경우에는 데이터를 토큰으로 바로바로 잘라서 반환하기 때문에 성능이 더 좋다고 한다.

그러므로 데이터가 많은 경우에는 StringTokenizer 사용을 생활화하자!

Comments