본문 바로가기
언어 공부하기/JAVA 개념

[ Java 자바 ] StringTokenizer 클래스를 이용한 문자열 분리!

by 망댕이 2024. 4. 15.
반응형
반응형

StringTokenizer클래스는 많이 들어본 클래스 이름일 것입니다.

StringTokenizer는 문자열을 구분자를 사용하여 분리할 때 자주 사용됩니다.

(스페이스, 공백, 콤마를 기준으로 문자열 분리에 사용)

 

 

StringTokenizer를 이용하여 방법은 3가지가 있습니다.

<1>
StringTokenizer st = new StringTokenizer(문자열);
// 띄어쓰기를 기준으로 문자열을 분리함.

<2>
StringTokenizer st = new StringTokenizer(문자열, 구분자);
// 구분자를 기준으로 문자열을 분리함.

<3>
StringTokenizer st = new StringTokenizer(문자열, 구분자, boolean));
// 구분자를 기준으로 문자열을 분리하면서 구분자도 동시에 토큰으로 들어감 -> ture
// 구분자를 기준으로 문자열을 분리하지만 구분자는 토큰으로 들어가지 않음 -> false

 

 


 

 

각 예시를 통해 더욱 쉽게 알아보도록 하겠습니다.

<1>
import java.util.*;

class Main {
    public static void main(String[] args) {
        String str = "오늘 날씨는 맑음";
        StringTokenizer st = new StringTokenizer(str);
        System.out.println(st.countTokens()); // countTokens() : 총 토큰의 개수를 반환
        while (st.hasMoreTokens()) { // hasMoreTokens() : 남아있는 토큰이 존재여부에 따라 true/false
            System.out.println(st.nextToken()); // nextToken() : 객체에서 다음 토큰을 반환
        }        
    }
}

 

 

프로그램 출력값을 보면 문자열 총 개수 3개와 오늘, 날씨는, 맑음 3가지의 토큰으로 출력되었습니다.

countTokens()를 이용하여 띄어쓰기로 분리된 문자열 총 개수를 반환하여 출력할 수 있습니다

hasMoreTokens() 메소드를 이용하여 남아있는 토큰이 있을 때 true값을 반환 없을 때 false값을 반환하도록 합니다.

nextToken()메소드를 이용하여 다음 토큰을 계속해서 출력하였습니다.

 


 

<2>
import java.util.*;

class Main {
    public static void main(String[] args) {
        String str = "오늘,날씨는,맑음";
        StringTokenizer st = new StringTokenizer(str, ",");
        System.out.println(st.countTokens()); // countTokens() : 총 토큰의 개수를 반환
        while (st.hasMoreTokens()) { // hasMoreTokens() : 남아있는 토큰이 존재여부에 따라 true/false
            System.out.println(st.nextToken()); // nextToken() : 객체에서 다음 토큰을 반환
        }        
    }
}

 

이번에는 StringTokenizer(문자열, ",")를 이용하여 ","를 기준으로 오늘, 날씨는, 맑음 3가지 토큰으로 나누었습니다.

띄어쓰기 기준이 아닌 원하는 구분자를 기준으로 문자열을 분리할 때 사용합니다.

 


 

<3>
import java.util.*;

class Main {
    public static void main(String[] args) {
        String str = "오늘,날씨는,맑음";
        StringTokenizer st = new StringTokenizer(str, ",", true);
        System.out.println(st.countTokens()); // countTokens() : 총 토큰의 개수를 반환
        while (st.hasMoreTokens()) { // hasMoreTokens() : 남아있는 토큰이 존재여부에 따라 true/false
            System.out.println(st.nextToken()); // nextToken() : 객체에서 다음 토큰을 반환
        }           
    }
}

 

마지막으로 StringTokenizer(문자열, 구분자, boolean)을 이용했을때 프로그램 출력이 확연하게 달라진 것을 확인할 수 있습니다.

"," 구분자를 기준으로 문자열을 나누었지만 구분자도 하나의 토큰으로 들어갔습니다.

그렇게 총 토큰의 개수도 5개로 늘어났습니다.

반응형