반응형

StringTokenizer 클래스란?
- 문자열(String)을 토큰화한다, 특정 조건으로 문자열을 자른다(Tokenizer)는 뜻이다.
  여기서 토큰은 문자열을 분리한 조각조각들로 이해 하면 쉽다.
 다시말해서 이 문장(문자열)에서 띄어 쓰기 기준으로 각각 나눈 조각들을 이야기 합니다. 

예시>
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args){
String strEx = "이문장을 띄어쓰기 기준으로 분리해보자";
StringTokenizer st = new StringTokenizer(strEx);

System.out.println(st.nextToken());  // 첫번째 문자열 조각
System.out.println(st.nextToken());  // 두번째 문자열 조각
System.out.println(st.nextToken());  // 세번째 문자열 조각
System.out.println(st.nextToken());  // 네번째 문자열 조각
    }
}

결과-----
이문장을
띄어쓰기
기준으로
분리해보자


문자열이 4개의 토큰으로 출력되었다.
배열 출력을 한것과 동일한 느낌이다. 

반응형


띄어쓰기(공백문자)를 구분자로 문자열을 자를 경우에는 위와 같이 구분자 없이 함수를 호출 하면 되지만
특정 구분자를 사용해서 문자열을 자를 경우 아래와 같이 호출를 하면 됩니다. 
여기에서 StringTokenizer 장점이 나오는데 여러가지 구분자를 동시에 사용해 문자열을 분해 할 수 있다는 것이다.

예시>
import java.util.StringTokenizer;

public class Main {

public static void main(String[] args) {
String str1 = "Java StringTokenizer 분리 예제";
String str2 = "Java,StringTokenizer,분리,예제";
String str3 = "Java,String/Tokenizer,분리%예제";
String str4 = "Java,,String,/Tokenizer/분리/예제";

StringTokenizer st1;
StringTokenizer st2;
StringTokenizer st3;
StringTokenizer st4;

// 1. 구분자를 default로 설정 - default는 띄어쓰기 기준.
st1 = new StringTokenizer(str1);
System.out.println("문자열 조각 " + st1.countTokens() + "개");
while (st1.hasMoreTokens()) {
System.out.println(st1.nextToken());
}

// 2. 구분자를 ','(콤마)로 설정.
st2 = new StringTokenizer(str2, "%");
System.out.println("문자열 조각 " + st2.countTokens() + "개");
while (st2.hasMoreTokens()) {
System.out.println(st2.nextToken());
}

// 3. 여러개 구분자를 ','(콤마) and '/' and '%'로 설정. 
st3 = new StringTokenizer(str3, ",/%", true); // true 값은 구분자도 하나의 token 인식 되도록 설정.
System.out.println("문자열 조각 " + st3.countTokens() + "개");
while (st3.hasMoreTokens()) {
System.out.println(st3.nextToken());
}

// 4. 구분자를 ','으로 설정하여 출력하다가, 구분자를 '/'로 재설정하고 출력.
st4 = new StringTokenizer(str4, ",");
System.out.println("문자열 개수 (구분자 : ',') : " + st4.countTokens());
System.out.println(st4.nextToken());
System.out.println(st4.nextToken());
System.out.println(st4.nextToken("/"));
System.out.println("문자열 개수 (구분자 : '/') : " + st4.countTokens());
System.out.println(st4.nextToken());
System.out.println(st4.nextToken());
System.out.println(st4.nextToken());
}
}

1번 출력 결과 2번 출력 결과 3번 출력 결과 4번 출력 결과
문자열 조각 4개
Java
StringTokenizer
분리
예제
문자열 조각 4개
Java
StringTokenizer
분리
예제
문자열 조각 5개
Java
String
Tokenizer
분리
예제
문자열 개수 (구분자 : ',') : 3
Java
String
,
문자열 개수 (구분자 : '/') : 3
Tokenizer
분리
예제

StringTokenizer 강점은 문장을 분해 할때 다양한 구분자를 사용해서 한번에 필요한 문자를 구분해 낼 수 있다는 점이다.

 

반응형

+ Recent posts