자바/자바 입문 공부일지

자바 기초 공부 일지 34. 문자열 토큰

Tomitom 2022. 11. 1. 15:02
반응형

파이썬에서 문자열을 구분하는 방법으로 split()함수가 있었습니다. 

https://blue-dot.tistory.com/12

 

파이썬 공부일지 9. 숫자 · 문자열 함수!

수업은 끝났으나 자습이 남아 있습니다. 8시간 내리 수업을 듣는 것보다, 지금까지 들었던 수업들을 정리할 수 있는 시간이 있다는 것이 얼마나 감사한 일인지 모르겠어요. 누군가에게 배우는

blue-dot.tistory.com

 

자바에서도 동일한 역할을 하는 문자열 토큰이라는 기능이 있는데,

문자열에서 기준자가 되는 것을 기준으로 슬라이싱 하는 (문자열을 나누는) 기능입니다.ㅜ 

 

PM:08:45  

이 문자열이 있을 때 문자열의 구분자: 콜론 일 경우 토큰은 다음 세 가지입니다. 

 

  PM    08    45

 

위와 같이 토큰을 나누는 방법으로는 자바의 유틸인 StringTokenizer 을 사용해야 합니다. 

 

import java.util.StringTokenizer;

   StringTokenizer st = new StringTokenizer("PM:08:45", ":");

 

StringTokenizer 의 변수 st 에 슬라이싱한 값을 저장합니다. 그 값을 토큰이라고 부릅니다. 

StringTokenizer 엔 두 가지의 기능이 있는데, 문자열에 구분자를 기준으로 반환할 토큰이 있는지 확인할 수 있는 기능과 

다음 문자열 토큰을 반환하는 기능이 있습니다. 

 

1.       public boolean hasMoreTokens()   반환할 토큰이 남아 있는가?

2.       public String nextToken()   다음 토큰을 반환

 

StringTokenizer 는 둘 이상의 구분자와 공백도 구분자로 포함할 수 있습니다. 

각 구분자들을 " " <- 큰따옴표 안에 열거하여 입력해주시면 됩니다. (만약 공백을 구분자로 사용하고 싶으시다면 공백을 입력하시면 됩니다.) 

 

다음 예시를 통해 확인해보겠습니다.

package day17;

import java.util.StringTokenizer;

public class Tokenizer {

	public static void main(String[] args) {
		
		StringTokenizer st1 = new StringTokenizer("PM:10:20",":");
		while (st1.hasMoreTokens()){
			System.out.println(st1.nextToken()); 
		}
			
		StringTokenizer st2 = new StringTokenizer("a + b = c", "+= ");  // +, =, '공백' 까지 세 가지 구분자 
		while (st2.hasMoreTokens()){
			System.out.println(st2.nextToken()); 
		}
	}
}

 

 

package day17;

import java.util.StringTokenizer;   // 자바 유틸리티 StringTokenizer 기능을 불러옵니다.

public class Tokenizer {

    public static void main(String[] args) {
       
        StringTokenizer st1 = new StringTokenizer("PM:10:20",":");  // StringTokenizer 의 인스턴스 st1 을 생성합니다.
        while (st1.hasMoreTokens()){    // StringTokenizer의 인스턴스 st1이 구분할 수 있는 구분자가 존재한다면 (true라면) 그것이 없을 때까지 반복하는 반복문을 기재합니다.
            System.out.println(st1.nextToken());    // st1의 값에 저장된 토큰을 출력합니다.
        }
           
        StringTokenizer st2 = new StringTokenizer("a + b = c", "+= ");  // +, =, '공백' 까지 세 가지 구분자
        while (st2.hasMoreTokens()){
            System.out.println(st2.nextToken());
        }
    }
}
반응형