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
파싱할 문자열 입력(컴마구분) : 사과,딸기,바나나
파싱된 토큰(문자열) : 사과 딸기 바나나
계속하려면 아무 키나 누르십시오 . . .
'Study Note > Java' 카테고리의 다른 글
JAVA_ Test137_ Calendar 클래스 / .get(Calendar.YEAR) (0) | 2018.06.16 |
---|---|
JAVA_ Test136_ 문자열 관련 클래스 / 캐릭터 셋(CharacterSet) / try{}catch(){} / UnsupportedEncodingException (0) | 2018.06.16 |
JAVA_ Test134_ StringBuffer 클래스 / .replace() / .delete() / .substring() / .insert() (0) | 2018.06.16 |
JAVA_ Test133_ StringBuffer 클래스 / 버퍼 크기 조절 (0) | 2018.06.16 |
JAVA_ Test132_ 문자열 관련 메소드 (0) | 2018.06.16 |
댓글