-
기본적인 사용 방법#
- StringTokenizer stok = new StringTokenizer("사과 배 복숭아");
- str1 = stok.nextToken(); //"사과"리턴
- str2 = stok.nextToken(); //"배"리턴
- str3 = stok.nextToken(); //"복숭아"리턴
StringTokenizer 클래스는 java.util 패키지에 속해있다.
따라서 소스코드에 다음과 같은 import 선언문을 써주어야 한다
- import java.util.StringTokenizer; 또는 import java.util.*;
토큰을 모두 추출하고 난 다음에 다시 호출하면 NoSuchElementException을 발생한다. 이를 막기 위해서는 nextToken 메소드를 호출하기 전에 먼저 추출할 토큰이 남아 있는지 확인해야 한다.
이는 StringTokenizer 클래스의 또 다른 메소드인 hasMoreTokens를 이용한다.
- while (stok.hasMoreTokens()) { //토큰이 있는 동안만 while문 안에서 토큰을 추출하여 처리한다.
- str = stok.nextToken();
- System.out.println(str);
- }
위 기본적인 사용법을 종합해 보면 다음과 같다.
- import java.util.*;
- class StringTokenizerExample {
- public static void main(String []args) {
- StringTokenizer stok = new StringTokenizer("사과 배 복숭아");
- while (stok.hasMoreTokens()) {
- String str = stok.nextToken();
- System.out.println(str);
- }
- }
- }
-
주어진 구획문자를 기준으로 토큰을 추출하는 방법#
- stok = new StringTokenizer("사과,배,복숭아",","); //콤마(,)를 두번째 인자로 넘겨준다.
한가지 구획문자 뿐만 아니라 두개 이상의 구획문자로도 토큰을 추출할 수 있다.
다음과 같은 예도 가능하다.
- stok = new StringTokenizer("사과,배|복숭아",",|"); //콤마(,)와 수직선(|)를 인자로 넘겨준다.
-
구획문자까지 토큰으로 만드는 방법#
- stok = new StringTokenizer("사과=10|초콜렛=3|샴페인=1","=|",true); //세번째 인자로 true를 넘겨준다.
다음은 이런 방법으로 토큰을 사용하는 예제코드다.
- import java.util.*;
- class StringTokenizerExample {
- public static void main(String []args) {
- StringTokenizer stok = new StringTokenizer("사과=10|초콜렛=3|샴페인=1","=|",true);
- while (stok.hasMoreTokens()) {
- String token = stok.nextToken();
- if (token.equals("="))
- System.out.print("\t");
- else if (token.equals("|"))
- System.out.print("\n");
- else
- System.out.print(token);
- }
- }
- }
-
숫자를 입력받고 정수부와 허수부로 나누는 예제코드#
- import java.io.*;
import java.util.*;
public class StringTokenizerExampleEx {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String db = null;
int i = 0; //출력용 카운터 변수
int aa = 0;
int bb = 0;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("숫자입력 : "); //숫자 입력
db = br.readLine();
StringTokenizer stok = new StringTokenizer(db,"."); //콤마로 토큰 분리
while (stok.hasMoreTokens()) {
String str = stok.nextToken();
if (i == 0) { //임시로 한거니깐 맞게 응용
System.out.println("정수부 : "+str);
aa = Integer.parseInt(str); //integer 로 형변환
i++;
}
else
System.out.println("허수부 : "+str);
bb = Integer.parseInt(str); //integer 로 형변환
}//while 문 끝
System.out.println("정수부 : " + aa + " 허수부 : " + bb); //나눠서 출력
System.out.println("덧셈 : " + aa+bb); //두 토큰 덧셈
}
}
'Programming > JAVA' 카테고리의 다른 글
[펌]날짜로 부터 경과된 날짜 구하기... (0) | 2008.11.06 |
---|---|
[펌]향상된 for 순환문 (0) | 2008.11.06 |
[펌]ANT (0) | 2008.10.16 |
[펌]Log4J (0) | 2008.10.16 |
[펌]JSTL(JSP Tag Library) 개요 (0) | 2008.10.16 |