posted by 귀염둥이채원 2019. 3. 3. 21:18

자바는 String을 token단위로 끊어주는 StringTokenizer 클래스를 제공한다.


# 생성자

1. StringTokenizer(String str)

- str : 분석할 문자열

- 기본 분리 문자를 사용합니다. 

  기본 분리 문자에는 공백문자, 탭문자, 개행문자, 캐리지리턴문자가 있습니다.


2. StringTokenizer(String str , String delim)

- str : 분석할 문자열

- delim : 분리 문자로 사용할 문자


3. StringTokenizer(String str , String delim , boolean returnDelims)

- str : 분석할 문자열

- delim : 분리 문자로 사용할 문자

- returnDelims : 분리 문자까지 분리해서 출력할지 여부


# 주요함수

countTokens(): 토큰의 갯수를 리턴한다.

nextToken(): 다음 토큰을 리턴한다. 이전 토큰은 제거한다.

nextToken(String delim): 구획문자(delimiter)를 delim으로 바꾼 후 바뀐 다음 토큰을 리턴한다.

hasMoreTokens(): 리턴할 다음 토큰이 있으면 true를 다음 토큰이 없으면 false를 리턴한다.


# 예제 소스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Main {
    public static void main(String[] args) {
            String str = "this is my string"
            StringTokenizer st = new StringTokenizer(str); 
            System.out.println(st.countTokens()); 
            
            while(st.hasMoreTokens()) { 
                System.out.println(st.nextToken()); 
            }
            System.out.println(st.countTokens());
    }
}
 
/*********** 결과 ***************
4
this
is
my
string
0
*/
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.StringTokenizer;
 
public class Main {
    public static void main(String[] args) {
        String str = "this%^is%^my%^string"
        
        StringTokenizer st = new StringTokenizer(str,"%^");
        System.out.println(st.nextToken()); 
        System.out.println(st.nextToken());
        System.out.println(st.nextToken());
        System.out.println(st.nextToken());
    }
}
 
/*********** 결과 ***************
this
is
my
string
*/
cs


# 참고사이트

https://arer.tistory.com/48

https://dlfma1985.tistory.com/52