본문 바로가기
Study Note/Java

JAVA_ Test135_ StringTokenizer 클래스 / .counTokens() / .hasMoreTokens() / .nextToken()

by 시뮝 2018. 6. 16.
728x90


Test135  StringTokenizer 클래스 / .counTokens() / .hasMoreTokens() / .nextToken()

※ StringTokenizer 클래스

   문자열 파싱(parsing)을 위한 정보를 제공하는 클래스로 파싱(parsing)하고자 하는 문자열을 인자로 받아 생성하는데,

   여기에서 파싱(parsing)이란 하나의 문자열을 여러 문자열로 나누는 작업을 의미하게 되며, 이 때 나누는 단위가 되는

   문자열을 토큰(token)이라고 한다.


※ StringTokenizer 클래스를 사용하기 위해서는 java.util 패키지의 StringTokenizer 를 import 해야 한다.


※ StringTokenizer 클래스는 ★--- 호환성을 유지하는 목적으로 보관 유지되고 있으며 (기존에 많이 쓰이니 알아두자는 의미)---★

   문자열을 파싱(parsing)하기 위해서는 String 클래스의 split() 메소드나 java.util.regex 패키지를 사용할 것을 권장하고 있다.


※ 생성자

   - 원형

     StringTokenizer(String str)

     StringTokenizer(String str, String delim)

     StringTokenizer(String str, String delim, boolean returnDelims)

     → 주어진 문자열 str 을 단어로 분리하는 객체를 생성하며

         공백(구분)문자는 delim 에 포함된 문자로 처리하게 된다.

         만약 returnDelims 가 true 라면...

         공백 문자도 하나의 구분된 단어로 처리하게 된다.


Test135.java

import java.util.StringTokenizer;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.IOException;


public class Test135

{

public static void main(String[] arg) throws IOException

{

String strTemp;

String[] strArr;

int n;


BufferedReader br = new BufferedReader(new InputStreamReader(System.in));


System.out.print("파싱할 문자열 입력(컴마구분) : ");

strTemp = br.readLine();

//-- "사과,딸기,바나나,토마토"


// StringTokenizer 클래스 인스턴스 생성

StringTokenizer st = new StringTokenizer(strTemp, ",");

//-- strTemp 를 대상 문자열로...

//   『,』를 구분자로...


strArr = new String[st.countTokens()];

//-- int countTokens()

//   : 파싱된 문자열의 갯수를 리턴(반환)한다.


n=0;

while (st.hasMoreTokens())

{

strArr[n++] = st.nextToken();

}

// st.hasMoreTokens() : st에 남은 토큰가 있으면 true 없으면 false를 반환, 확인만 함 헤드 이동 x

// st.nextToken() : 분할된 다음 토큰을 가져옴. 헤드를 이동 o


System.out.print("파싱된 토큰(문자열) : ");

for (String str : strArr)

System.out.print(str + " ");

System.out.println();

}

}


cmd

파싱할 문자열 입력(컴마구분) : 사과,딸기,바나나

파싱된 토큰(문자열) : 사과 딸기 바나나

계속하려면 아무 키나 누르십시오 . . .







728x90

댓글