언어(Language)/Java

[Java] 자바 StringTokenizer 클래스 메서드 정리

다문다뭉 2024. 10. 8. 18:02

StringTokenizer

java.util에 포함되어 있는 문자열을 토큰으로 분리하는 클래스이다.

StringTokenizer 클래스는 3가지로 오버라이딩 되어있다.

// 1. defalut(공백, 탭, 줄바꿈) 구분자로 문자열을 분리
StringTokenizer st = new StringTokenizer(String str) {
        this(str, " \t\n\r\f", false);
    }
// 2. 구분자(delim)를 기준으로 문자열을 분리
StringTokenizer st = new StringTokenizer(String str, String delim) {
        this(str, delim, false);
    }
// 3. 구분자(delim)를 기준으로 문자열을 분리하고, 구분자도 토큰으로 반환(true)
StringTokenizer st = new StringTokenizer(String str, String delim, boolean returnDelims) {
        this(str, delim, true);
    }
💡StringTokenizer vs split()
StringTokenizer는 클래스, split()은 String 클래스에 속하는 메소드
StringTokenizer는 결과 값이 문자열이고, split()은 결과 값이 문자열 배열
StringTokenizer는 빈 문자열을 토큰으로 인식하지 않고, split()은 토큰으로 인식

hasMoreTokens()

현재 남아있는 문자열 중에서 다음에 추출할 수 있는 토큰이 있는지를 확인하는 메서드이다.

다음 토큰이 있으면 true, 없으면 false 값을 반환한다.

메서드명에 's'가 붙어있음에 유념해야한다.

nextToken()

문자열을 구분자 기준으로 분리하여, 다음 토큰을 읽어 들인다.

import java.util.StringTokenizer;

public class lenTest {
    public static void main(String[] args) {
        String str = "abc def ghi j";
        StringTokenizer st = new StringTokenizer(str);

        while (st.hasMoreTokens()){
            String token = st.nextToken();
            System.out.println(token);
        }

    }
}

countTokens()

문자열 내의 토큰 수를 계산하여 반환한다.

메서드명에 's'가 붙어있음에 유념해야한다.

import java.util.StringTokenizer;

public class lenTest {
    public static void main(String[] args) {
        String str = "abc def ghi j";
        StringTokenizer st = new StringTokenizer(str);

        int numTokens = st.countTokens(); // 4
    }
}

'언어(Language) > Java' 카테고리의 다른 글

[Java] length, length(), size() 차이점  (0) 2024.09.27
[Java] 자바 래퍼 클래스(Wrapper Class)  (2) 2024.09.26