My work space/Java

자바를자바답게하는클래스[StringTokenizer클래스]

schpritz 2008. 8. 14. 17:50

java.util.StringTokenizer

이 클래스는 문자열에서 단어를 분리하는 기능을 가지고 있다. 각각의 단어는 delimiter(구분 기호)에 의해 token(토큰)으로 분리된다. 다음은 "안녕하세요 헬로 월드 카페 입니다."라는 문자열을 space 문자를 구분 기호로 사용하여 토큰으로 분리해 본 것이다. 따라서 5개의 토큰이 생긴다.

 

 

 

StringTokenizer는 Enumeration 인터페이스를 구현하고 있다. 따라서 nextElement()를 이용하여 토큰을 하나씩 꺼내 올 수 있다.

 

StringTokenizer 클래스의 유용한 생성자

 

public StringTokenizer(String str)

문자열 str을 가지는 StringTokenizer 객체를 만든다.

space(' '), tab('\t'), newline('\n'), carriage-return('\r'), form-feed('\f')를 구분 기호로 한다.

 

public StringTokenizer(String str, String delim)

문자열 str을 가지고, delim을 구분 기호로 하는 StringTokenizer 객체를 만든다.

예) new StringTokenizer("문자열", "아오이");    // 구분기호: '아', '오', '이'

 

 

 

StringTokenizer 클래스의 유용한 메소드

public int countTokens()

남아 있는 토큰의 수를 반환한다.

 

public boolean hasMoreElements()

public boolean hasMoreTokens()

남아 있는 토큰이 있으면 true를, 아니면 false를 반환한다

 

public Object nextElement()

public String nextToken()

다음 토큰을 반환한다. 남아 있는 토큰이 없으면 NoSuchElementException을 던진다.

 

hasMoreElements 대신에 hasMoreTokens를, nextElements 대신에 nextToken을 사용해도 된다.

##Tokenizer1.java##

 

import java.util.*;

public class Tokenizer1{

  public static void main(String[] args){

    String str = new String("생각하는 자바는 자바 강의의 혁명이다.");

    StringTokenizer stok = new StringTokenizer(str);

   

    for(int i=1; stok.hasMoreElements(); i++)

      System.out.println(i+"번째 토큰: "+ stok.nextToken());

  }

}

 

##출력 결과##

 

1번째 토큰: 생각하는

2번째 토큰: 자바는

3번째 토큰: 자바

4번째 토큰: 강의의

5번째 토큰: 혁명이다.

   

 

##혼자 해보기##

 

키보드로부터 한 줄을 입력받아서 토큰으로 분리해보자.

 

##출력 결과 예시##

 

한 줄을 입력하세요.

Java를 Java보자. Java야 이리 와! ??

<토큰>

1: Java를

2: Java보자.

3: Java야

4: 이리

5: 와!