[Java] StringTokenizer 사용해보기

PersesTitan·2022년 5월 29일
0

Java

목록 보기
2/16

사용해보니 어떻게 보면 split과 비슷한 것 같습니다. (split의 대체품)

split은 정규식을 이용해서 문자를 자르고, StringTokenizer은 문자 기준으로 문자를 자름니다.

Split : String[]으로 값이 반환됨
StringTokenizer : StringTokenizer으로 값이 반환됨

생성자

  • StringTokenizer token = new StringTokenizer(String s);
  • StringTokenizer token = new StringTokenizer(String s1, String s2);
  • StringTokenizer token = new StringTokenizer(String s1, String s2, boolean b);

new StringTokenizer(String s);

s문장을 공백(\t, \n, \r) 기준으로 자름니다.

예제

import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) {
        String text = "Hello World       \saa\tbb\rHello\nss    Java";
        StringTokenizer tokenizer = new StringTokenizer(text);
        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());
        }
    }
}

출력

Hello
World
aa
bb
Hello
ss
Java




new StringTokenizer(String s1, String s2);

s1문장을 s2 기준으로 자름니다.

예제

import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) {
        String text = "Hello World aa bb Hello ss Java";
        StringTokenizer tokenizer = new StringTokenizer(text, "H");
        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());
        }
    }
}

출력

ello World aa bb 
ello ss Java




StringTokenizer(String s1, String s2, boolean b);

b가 true면 s2를 생략하지 않고 출력함 (false일때는 생략할때와 출력이 일치함)
예제

import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) {
        String text = "Hello World aa bb Hello ss Java";
        StringTokenizer tokenizer = new StringTokenizer(text, "H", true);
        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());
        }
    }
}

출력

H
ello World aa bb 
H
ello ss Java




s2에 1글짜 이상일때

예제

import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) {
        String text = "Hello World aa bb Hello ss Java";
        StringTokenizer tokenizer = new StringTokenizer(text, "He", true);
        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());
        }
    }
}

출력

H
e
llo World aa bb 
H
e
llo ss Java

이렇게 사용하면 He를 자르는 것이 아니라 H와 e따로 읽는다.


잘못된 정보가 있을시 지적 환영합니다.

정규식 링크

profile
안녕하세요 페르세스 티탄입니다! 부족한 부분이 많이 있겠지만 잘부탁드립니다.

0개의 댓글