09009

[Java] StringTokenizer 본문

Back-End/JAVA
[Java] StringTokenizer
09009

java.util.StringTokenizer 클래스

긴 문자열을 지정된 구분자(delimiter)를 기준으로 토큰이라는 여러 개의 문자열로 잘라내는데 사용된다.

ex) "1,2,3,4"라는 문자열이 있다고 예시를 들어보자. ","를 구분자로 잘라내면 "1","2","3","4"라는 4개의 문자열(토큰)을 얻을 수 있다.

생성자 / 메서드 설명
StringTokenizer(String str, String delim) 문자열(str)을 지정된 구분자(delim)로 나누는 StringTokenizer 생성
String Tokenizer(String str, String delim, 
boolean returnDelims)
문자열(str)을 지정된 구분자(delim)로 나누는 StringTokenizer 생성.
returnDelims의 값을 true로 설정하면 구분자도 토큰으로 간주됨.
int countTokens() 전체 토큰의 수 반환
boolean hasMoreTokens() 토큰이 남아있는지 알려줌
String nextToken() 다음 토큰을 반환
import java.util.StringTokenizer;

public class StringToken1 {
    public static void main(String[] args) {
        StringTokenizer st = new StringTokenizer("사과,바나나,딸기,포도",",");
        while(st.hasMoreTokens()) { // 토큰이 있으면 (데이터가 있으면)
            System.out.println(st.nextToken());
        }
    }
}

💻 출력

사과
바나나
딸기
포도

 

 

✍ 입력

import java.util.StringTokenizer;

public class TokenizeString {
    public static void main(String[] args) {
        // : 기호를 기준으로 첫번째 문자열을 분해한다.
        StringTokenizer str1 = new StringTokenizer("PM:08:45", ":");
        while(str1.hasMoreTokens())
            System.out.print(str1.nextToken() + ' ');

        System.out.println();

        StringTokenizer str2 = new StringTokenizer("12 + 36 - 8 / 2 = 44", "+-/=");
        while(str2.hasMoreTokens())
            System.out.print(str2.nextToken() + ' ');
        
        System.out.println();

        StringTokenizer str3 = new StringTokenizer("12 + 36 - 8 / 2 = 44", "+-/=", true);
        // true를 작성하면 token도 하나의 기호로 간주한다는 의미 ( +-/=도 기호로 간주)
        while(str3.hasMoreTokens())
            System.out.print(str3.nextToken() + ' ');
    }
}

 

💻 출력

PM 08 45 
12   36   8   2   44 
12  +  36  -  8  /  2  =  44

구분자로 여러 문자들을 지정한 것("+-/=")의 출력 결과에서 알 수 있듯이

StringTokenizer는 단 한 문자의 구분자만 사용할 수 있으므로"+-/=" 전체가 하나의 구분자가 아닌, 각각의 문자가 모두 구분자이다.