Languages/Java

[Java] StringTokenizer

조용한고라니 2021. 1. 23. 17:40
반응형

StringTokenizer

문자열을 특정 구분자(delim)로 나누어 주는 클래스이다. 메소드와 생성자 모두 몇 개 없어서 금방 익힐  수 있다. 스트림 API 처럼 한 번 사용되고 나면 재사용이 불가능 하다.

 

* Constructor

//str을 기본 구분자(\t, \r, \n, \f, " ")로 구분한다.
public StringTokenizer(String str)

//str을 특정 구분자(delim)으로 구분한다.
public StringTokenizer(String str, String delim)

//str을 특정 구분자(delim)으로 구분해주며, returnDelims가 
//true일 시 구분자도 토큰에 포함하며
//false일 시 토큰에 포함하지 않는다.
public StringTokenizer(String str, String delim, boolean returnDelims)

 

* Method

public boolean hasMoreTokens() : 구분자로 나누어진 토큰이 있으면 true, 없으면 false

 

public String nextToken() : 존재하는 다음 토큰을 반환, 토큰이 없는데 달라고 하면 NoSuchElementException가 발생한다. (nextElement()도 같은 역할)

 

public String nextToken(String delim) : delim으로 받은 문자를 구분자로 변경 후 다음 토큰을 반환

 

public int countTokens() : 현재 남은 토큰 개수 반환

 

* Example

public static void main(String[] args) throws Exception{

        String str = "abc 123\r!@#\n456\t789123";
        String str1 = "HelloWorld+gorany+blog";

        StringTokenizer st = new StringTokenizer(str);
        StringTokenizer st1 = new StringTokenizer(str1, "+");

        System.out.println("st 토큰의 개수: " + st.countTokens());
        System.out.println("st1 토큰의 개수: " + st1.countTokens());

        System.out.println("st의 Tokens");
        while(st.hasMoreTokens()) {
            System.out.print(st.nextToken() + " ");
        }
        System.out.println("st1의 Tokens");
        while(st1.hasMoreTokens()) {
            System.out.print(st1.nextToken() + " ");
        }
    }
st 토큰의 개수: 5
st1 토큰의 개수: 3

st의 Tokens
abc 123 !@# 456 789123

st1의 Tokens
HelloWorld gorany blog
반응형