2024. 4. 30. 20:22ㆍjava
1. StringTokenizer란?
StringTokenizer는 String에서 구분자를 통해서 토큰형태로 나눌 때 사용하는 클래스입니다
여기서 말하는 구분자는 공백 문자, 탭 문자, 새줄 문자등의 문자를 말합니다.
StringTokenizer를 아래의 코드 처럼 객체화한 후
StringTokenizer st= new StringTokenizer(br.readLine(),",");
클래스명에 해야할 설정은
StringTokenizer( 자르고 싶은 String , 자르는 기준 문자의 집합 , 자르는 기준을 넣을지 말지)
입니다.
StringTokenizer 사용 법
public class p {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st= new StringTokenizer(br.readLine(),",");
int a = Integer.parseInt(st.nextToken());
int a2 = Integer.parseInt(st.nextToken());
System.out.println(a+a2);
}
}
위에 코드는 입력 받은 숫자를 ,를 기준으로 토큰으로 나뉩니다.
그리고,
그 숫자를 출력하는 코드입니다.
2. hasMoreToken()란?
위 사이트에 글을 인용하면,
문자열에서 현재 위치 뒤에 토큰이 하나 이상 있는 경우에만 true이고, 그렇지 않으면 거짓입니다.
https://docs.oracle.com/en/java/javase/11/docs/api/index.html
Overview (Java SE 11 & JDK 11 )
This document is divided into two sections: Java SE The Java Platform, Standard Edition (Java SE) APIs define the core Java platform for general-purpose computing. These APIs are in modules whose names start with java. JDK The Java Development Kit (JDK) AP
docs.oracle.com
즉, 뒤에 토큰이 있으면, true이고, 없으면, false입니다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Scanner;
import java.util.StringTokenizer;
/**==============================*
* 작성자 : kimga
* 작성일 : 2024. 4. 14.
* 파일명 : CodingTest.java
*프로그램 설명 :
*==============================**/
/**
* @author kimga
*
*/
public class p {
public static void main(String[] args) throws IOException{
String str = "my name is Jung Gwang Jik";
StringTokenizer token1 = new StringTokenizer(str);
StringTokenizer token2 = new StringTokenizer(str , "a");
StringTokenizer token3 = new StringTokenizer(str , "a" , true);
StringTokenizer token4 = new StringTokenizer(str , "a" , false);
System.out.print("token1 : ");
while( token1.hasMoreTokens() ){
System.out.print( token1.nextToken() + " / " );
}
System.out.println();
System.out.print("token2 : ");
while( token2.hasMoreTokens() ){
System.out.print( token2.nextToken() + " / " );
}
System.out.println();
System.out.print("token4 : ");
while( token4.hasMoreTokens() ){
System.out.print( token4.nextToken() + " / " );
}
System.out.println();
System.out.print("token3 : ");
while( token3.hasMoreTokens() ){
System.out.print( token3.nextToken() + " / " );
}
}
}
위의 코드 처럼
token1은 토큰을 나누는 기준 없이 나누고,
token2는 토큰을 나누는 기준을 a로 정하되, nextoken 때문에 a 대신에 /를 넣겠다는 의미입니다.
token4는 토큰을 나누는 기준을 a를 정하지 않겠다는(false), nextoken 때문에 a 대신에 /를 넣겠다는 의미입니다.
token3은 토큰을 나누는 기준을 a 정하는 것을 넣어서(true) a 앞뒤로 /를 넣겠다는 의미입니ㅏㄷ.
3. hasMoreElements()란?
이 열거형에 더 많은 요소가 포함되어 있는지 테스트합니다.
이 열거형 개체에 제공할 요소가 하나 이상 포함된 경우에만 true이고, 그렇지 않으면 거짓입니다.
hasMoreToken()과 hasMoreElements()의 차이는 없습니다.
4. countTokens()란
countTokens은 Token 개수를 셀 때 씁니다.
'java' 카테고리의 다른 글
substring과 charAt의 차이 (0) | 2024.05.07 |
---|---|
Arrays 클래스란? (0) | 2024.05.01 |
hasnext()란? - [java] (0) | 2024.04.24 |
(JAVA) BufferedWriter (0) | 2024.04.24 |
StringBuilder란? (0) | 2024.04.20 |