본문 바로가기

□ 이론/기타

StringTokenizer class (스트링 토크나이저 클래스)


StringTokenizer class



문자열을 구분자를 기준으로 끊어서 토큰을 리턴해주는 기능을 하는 클래스이다.
어떤 기능을 하는지 예시를 보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package practice;
 
import java.util.StringTokenizer;
 
public class p1 {
    public static void main(String[] args) {
        String row = "<meta property=\"og:image\" content=\"https://s.ps"
                + "tatic.net/static/www/mobile/edit/2016/0705/mobile_212852414260.png\">";
        StringTokenizer st = new StringTokenizer(row);
        // StringTokenizer st = new StringTokenizer(row, " "); 이것과 동일하다.
        // 두 번째 인자는 토큰을 구분하기 위한 구분자를 뜻한다. 
        // 인자를 넘겨주지 않으면 " "을 넘긴 것으로 간주(디폴트)
        // 아래와 같이 구분자를 기준으로 토큰을 끊어서 리턴해주는 역할을 한다.
        System.out.println("첫 번째 토큰 : " + st.nextToken());
        System.out.println("두 번째 토큰 : " + st.nextToken());
        System.out.println("세 번째 토큰 : " + st.nextToken());
    }
}
cs

<실행 결과>



nextToken()도 구분자를 인자로 받을 수 있다.

디폴트 구분자에서 중간에 nextToken()의 인자로 "="를 넣어보았다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package practice;
 
import java.util.StringTokenizer;
 
public class p1 {
    public static void main(String[] args) {
        String row = "<meta property=\"og:image\" content=\"https://s.ps"
                + "tatic.net/static/www/mobile/edit/2016/0705/mobile_212852414260.png\">";
        StringTokenizer st = new StringTokenizer(row);
        
        System.out.println("첫 번째 토큰 : " + st.nextToken());
        // nextToken()의 인자로 구분자를 전달해 바꿀 수 있다.( " " -> "=" )
        System.out.println("두 번째 토큰 : " + st.nextToken("="));
        // 구분자를 바꾸고 나면 또 바꾸기 전까지 계속 적용된다.
        System.out.println("세 번째 토큰 : " + st.nextToken());
        System.out.println("네 번째 토큰 : " + st.nextToken());
    }
}
 
cs


<실행 결과>




이제 응용해서 원하는 문자열을 얻어내보자.

원하는 문자열 : \"og:image\"


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package practice;
 
import java.util.StringTokenizer;
 
public class p1 {
    public static void main(String[] args) {
        String row = "<meta property=\"og:image\" content=\"https://s.ps"
                + "tatic.net/static/www/mobile/edit/2016/0705/mobile_212852414260.png\">";
        StringTokenizer st = new StringTokenizer(row);
        // 내가 원하는 문자열만 뽑아내보자.
        // \"og:image\"
        String my_str = "";
        my_str = st.nextToken("=");
        System.out.println(my_str);
        
        my_str = st.nextToken(" ");
        //구분자가 바뀐 채로 다음 토큰을 받는 것이므로
        //이전 구분자였던 "="가 앞에 붙어있다.
        System.out.println("내가 원하던 문자열...??? : " + my_str);
        
        //String 객체의 substring()함수를 이용해서 내가 원하는 문자열만 얻으면 된다.
        //substring(BeginIndex) or substring(BeginIndex, EndIndex)
        System.out.println("내가 원하던 문자열!!! : " + my_str.substring(1));
    }
}
 
cs

<실행 결과>




예시를 보고 이해한 뒤 한 두번만 스스로 해보자.

StringTokenizer 객체를 이용해서 원하는 문자열을 얻어낼 수 있게 될 것이다.

'□ 이론 > 기타' 카테고리의 다른 글

JSP 개념 정리  (0) 2019.04.17
JavaScript 기초 개념 정리  (0) 2019.03.29
스프링 프레임워크 기본 개념 정리  (0) 2019.03.27
[Java] 배열(array)  (0) 2019.01.06
C++에서의 string 클래스  (0) 2018.11.19