Vienna
Chapter 9) java.lang 패키지와 유용한 클래스 - java.util.StringTokenizer 본문
◇ StringTokenizer?
긴 문자열을 지정된 구분자를 기준으로 토큰이라는 여러 개의 문자열로 잘라내는데 사용된다.
단, StringTokenizer는 구분자로 단 하나의 문자 밖에 사용하지 못한다.
책에서는 이것 뿐만 아니라 정규표현식을 사용한
String.split(String regex)이나 Scanner.useDelimiter(String pattern)를 사용할 수도 있다고 나와 있다.
(그럼 무엇이 더 빠를까? 주말에 조사해야겠다)
import java.util.*;
public class Main {
public static void main(String[] args) {
String source = "100,200,300,400";
StringTokenizer st = new StringTokenizer(source, ",");
while(st.hasMoreTokens()){
System.out.println("st.nextToken() = " + st.nextToken());
}
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
String expression = "x=100*(200+300)/2";
// "+-*/=()" 전체가 하나의 구분자가 아니라
// 각각의 문자가 모두 구분자로 취급된다.
StringTokenizer st = new StringTokenizer(expression, "+-*/=()", true);
while(st.hasMoreTokens()){
System.out.println("st.nextToken() = " + st.nextToken());
}
}
}
split()은 데이터를 토큰으로 잘라낸 결과를 배열에 담아서 반환한다.
하지만 StringTokenizer의 경우에는 데이터를 토큰으로 바로바로 잘라서 반환하기 때문에 성능이 더 좋다고 한다.
그러므로 데이터가 많은 경우에는 StringTokenizer 사용을 생활화하자!
'언어 > Java의 정석' 카테고리의 다른 글
Chapter 11) 컬렉션 프레임워크 - LinkedList (0) | 2023.05.13 |
---|---|
Chapter 11) 컬렉션과 프레임워크 - HashMap과 HashTable (0) | 2023.05.11 |
Chapter 5) 배열 Array (0) | 2023.05.10 |
Chapter 11) 컬렉션 프레임워크 - TreeSet (0) | 2023.05.08 |
Chapter 11) 컬렉션 프레임워크 - HashSet (0) | 2023.05.07 |
Comments