사용해보니 어떻게 보면 split과 비슷한 것 같습니다. (split의 대체품)
split은 정규식을 이용해서 문자를 자르고, StringTokenizer은 문자 기준으로 문자를 자름니다.
Split : String[]으로 값이 반환됨
StringTokenizer : StringTokenizer으로 값이 반환됨
생성자
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
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
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
예제
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따로 읽는다.
잘못된 정보가 있을시 지적 환영합니다.