[JAVA] StringTokenizer 클래스 활용 (문자열 구분자로 자르기)

2020. 8. 6. 10:53Programming Language/JAVA

반응형

StringTokenizer 클래스

문자열을 구분자(delim)을 기준으로 토큰형태로 분리하는 작업에 유용하다.
String 객체의 split 메서드와 유사하고 보다 섬세한 작업이 가능하다.


StringTokenizer 생성자 정리

생성자 설명
StringTokenizer(String str) 문자열 str를 기본 구분자(\t\n\r)로 분리
StringTokenizer(String str, String delim) 문자열 str를 특정 구분자(delim)로 분리
StringTokenizer(String str, String delim,
boolean returnDelims)
문자열 str를 특정 구분자(delim)로 분리
returnDelims 가 true : 구분자 포함
returnDelims 가 false : 구분자 불포함

StringTokenizer 메서드 정리

메서드 설명
boolean hasMoreTokens()
boolean hasMoreElements()
토큰이 존재하면 true, 토큰이 존재하지 않으면 false 반환
Object nextElement() 다음 토큰을 Object형으로 반환
String nextToken() 다음 토큰을 String형으로 반환
int countTokens() 토큰의 갯수를 int형으로 반환

■ 기본 구분자 (delim : \t, \n, \r)

// 기본 구분자 : \t\n\r
StringTokenizer defaultTokens = new StringTokenizer("write once \t run \r anywhere");
while (defaultTokens.hasMoreTokens()) {
	System.out.println(defaultTokens.nextToken());
}

/*
※ 출력 결과
write
once
run
anywhere
*/

 

 특정 구분자

// 구분자 : #/-
StringTokenizer delimTokens = new StringTokenizer("write#once/run-anywhere", "#/-");
while (delimTokens.hasMoreElements()) {
	System.out.println(delimTokens.nextElement());
}

/*
※ 출력 결과
write
once
run
anywhere
*/

 

 구분자 포함/불포함 분리

  • true : 구분자 포함
// 구분자를 포함한 토큰 추출 : #/-
StringTokenizer returnDelimsTokens = new StringTokenizer("write#once/run-anywhere", "#/-", true);
		
// 토큰의 갯수 반환 
System.out.println(returnDelimsTokens.countTokens());
while (returnDelimsTokens.hasMoreTokens()) {
	System.out.println(returnDelimsTokens.nextToken());
}

/*
※ 출력 결과
7
write
#
once
/
run
-
anywhere
*/
  • false : 구분자 불포함
// 구분자를 포함한 토큰 추출 : #/-
StringTokenizer returnDelimsTokens = new StringTokenizer("write#once/run-anywhere", "#/-", false);
		
// 토큰의 갯수 반환 
System.out.println(returnDelimsTokens.countTokens());
while (returnDelimsTokens.hasMoreTokens()) {
	System.out.println(returnDelimsTokens.nextToken());
}

/*
※ 출력 결과
write
once
run
anywhere
*/

SOURCE CODE

 

hyunmin94/JavaExam

Contribute to hyunmin94/JavaExam development by creating an account on GitHub.

github.com

반응형