[Java] StringTokenizer

고병갑·2025년 2월 16일

java study

목록 보기
4/10

StringTokenizer란?

StringTokenizer 클래스란
하나의 문자열을 여러개의 토큰으로 분리하는 클래스
특정 문자에 따라 문자열을 나누고 싶을 때에 StringTokenizer를 사용
즉, 문자열을 토큰화함
ex) 010-1234-5678 → (-)가 구분자라면 010, 1234, 5678 이 토큰이 됨

→ 띄어쓰기를 기준으로 문자열을 분리

// 띄어쓰기를 기준으로 문자열을 분리하고 싶을 때
StringTokenizer st = new StringTokenizer(문자열);

// 구분자를 기준으로 문자열을 분리하고 싶을 때
StringTokenizer st = new StringTokenizer(문자열,구분자);

// 구분자를 기준으로 문자열을 분리할 때 구분자도 토큰으로 넣을지 설정할때 true/false 를 포함하여 결정 가능 (default는 false)
StringTokenizer st = new StringTokenizer(문자열,구분자,true/false);

생성자

리턴값생성자
StringnextToken()객체에서 다음 토큰을 반환
StringnextToken(String delim)중간에 문자열을 자르는 기준을 delim으로 바꾸는 메소드
intcountTokens()현재 남아있는 토큰의 개수를 int 타입으로 반환
ObjectnextElement()다음의 토큰을 반환하는데 Object 타입으로 반환
booleanhasMoreTokens(), hasMoreElements()꺼내올 토큰이 존재하는지 확인하고 결과값을 boolean타입으로 반환


예시

  1. delim 을 default로 설정하여 출력
    (delim이란 : 문자열 내에서 자르는 기준, 구분자)
package test;

import java.util.StringTokenizer;

public class test3 {
	public static void main(String[] args) {
		String str1 = "Welcome to the Show";
		
		StringTokenizer st = new StringTokenizer(str1);
		
		System.out.println("st1의 토큰 개수 : "+ st.countTokens());
		while (st.hasMoreTokens()) {
			System.out.println(st.nextToken());
		}
	}
}

  1. delim을 %으로 설정하여 출력
package test;

import java.util.StringTokenizer;

public class test3 {
	public static void main(String[] args) {
		String str2 = "Welcome%to%the%병갑%블로그";
		
		StringTokenizer st = new StringTokenizer(str2,"%");
		
		System.out.println("str2의 토큰 개수 : "+st.countTokens());
		while (st.hasMoreTokens()) {
			System.out.println(st.nextToken());
		}
	}
}

  1. delim을 '%', '/', '*'로 설정. + delim도 하나의 token으로 취급하여서 출력
package test;

import java.util.StringTokenizer;

public class test3 {
	public static void main(String[] args) {
		String str3 = "Welcome%to/the%병갑*블로그";
		
		StringTokenizer st = new StringTokenizer(str3,"%/*",true);
		
		System.out.println("str3의 토큰 개수 : "+st.countTokens());
		while (st.hasMoreTokens()) {
			System.out.println(st.nextToken());
		}
	}
}

  1. delim을 '%'으로 설정하여 출력하다가, delim을 '&'로 재설정하고 출력
package test;

import java.util.StringTokenizer;

public class test3 {
	public static void main(String[] args) {
		String str4 = "Welcome%%to%&the&병갑&블로그";
		
		StringTokenizer st = new StringTokenizer(str4,"%");
		
		System.out.println("str4의 토큰 개수 (delim : '%' ) : " + st.countTokens());
		System.out.println(st.nextToken());
		System.out.println(st.nextToken());
		System.out.println(st.nextToken("&"));
		System.out.println("str4의 토큰 개수 (delim : '&' ) : " + st.countTokens());
		System.out.println(st.nextToken());
		System.out.println(st.nextToken());
		System.out.println(st.nextToken());
	}
}
profile
노력 naver 배신🔥

0개의 댓글