StringTokenizer클래스
문자열이 한 종류의 구분자로 연결되어 있을 경우 문자열(토큰token)을 분리해내기 위한 클래스
StringTokenizer는 메소드가 아니라 java.util에 포함되어 있는 자체 클래스입니다.
StringTokenizer클래스는 내부에 꼭 넣어야 하는 메소드가 존재합니다.
StringTokenizer()의 사용방법
1. StringTokenizer()는 객체를 생성해서 사용해야합니다.
2. StringTokenizer()는 객체를 생성 후 import 해야합니다.
3. 위의 StringTokenizer() 중 string str은 문자열을 나눌 대상입니다.
4. string delim은 str 문자를 나눌때 기준이 되는 문자열입니다.
5. boolean은 나누는 기준이되는 문자열의 출력 여부를 묻습니다.
6. 여러개의 구획 문자가 적용가능하다.
StringTokenizer()의 쉬운이해!
M,UN,G라는 문자열(str)이 있습니다. ,를 기준으로 분리를 해 보겠습니다.
이 때 , 를 구분자(delim)라고 이야기를 합니다.

그러면, , 구분자에 의해서 문자열은 M , UN, G 로 나누어집니다. 이러한 것들을 각각 토큰이라 합니다.

만약에 구분자가 ','와 ' '인 경우, 토큰은 "M", "U", "N","G"로 나누어집니다.
그림을 보시면 1번째로 만나는 구분자 ','와 ' '사이에 아무것도 없음을 알 수 있는데요. 토크나이저는 그러한 경우, 토큰으로 삼지 않습니다.

생성자
StringTokenizer(String str) |
• 구획문자(delimiter)를 인자로 받지않는 생성자. |
StringTokenizer(String str,String delim) | • 구획문자(delimiter)를 인자로 받는 생성자. • 구획문자는 2자리 이상도 설정할 수 있다. • 구획문자를 $%라고 설정하면 $, %를 기준으로 끊어준다. • %%라고 설정하면 %를 기준으로 끊어준다 즉, 구획 문자는 길이가1로 고정이고 길이가 2이상인 구획문자 를 받으면 구획문자가 여러개가 된다. |
StringTokenizer(String str, String delilm, boolean retrunDelims) | • 구획문자(delimiter)를 인자로 받는 생성자. returnDelims가 trur이면 구획문자도 토큰으로 간주한다. • 각 구획문자는 길이가 1인 String이 된다. 예를들어 delimiter가 %%라도 % 2개로 저장된다. • returnDeilms가 false면 구획문자를 token으로 사용하지 않는다. 위의 두 생성자는 디폴트로 false를 가진다. |
주요함수
이 클래스는 문자열을 토큰이라는 용어로 부르는데 사용방법은 메소드를 이용하여 전체 토큰의 수는 몇개 있는지, 사용할 토큰이 있는지를 판단하여 토큰을 읽어옵니다.
countTokens() | • 토큰의 갯수를 리턴한다. |
nextToken() | • 다음 토큰을 리턴한다. • 이전 토큰은 제거한다. |
nextToken(String delim) |
• 구획문자(delimiter)를 delim으로 바꾼 후 바뀐 다음 토큰을 |
hasMoreTokens() | • 리턴할 다음 토큰이 있으면 true를 다음 토큰이 없으면 false를 리턴한다. |
위 표에 보이는 메소드중 nextToken을 포함한 2가지 이상의 메소드를 이용하면 문자열을 분리하여 원하는 결과값을 도출할 수 있습니다.
countToken 메소드로 토큰의 수를 파악하고 nextToken 으로 토큰을 읽어오던지, hasMoreTokens 메소드로 토큰이 남아있는지 확인후 nextToken 으로 토큰을 읽어오는 방법이 있습니다.