본문 바로가기

Java/기초

[Java] StringTokenizer 클래스

긴 문자열을 지정된 구분자(delimiter)를 기준으로 토큰(token)이라는 여러 개의 문자열로 잘라내는 데 사용된다. 예를 들어 "100,20,300,400"라는 문자열이 있을 때 ','를 구분자로 잘라내면 "100","200","300","400"이라는 4개의 문자열(토큰)을 얻을 수 있다.

물론 String의 split(String regex), Scanner의 useDelimiter(String pattern)를 사용할 수도 있다.

이 두가지 방법은 정규식 표현(Regular expression)을 사용해야하므로 정규식 표현에 익숙하지 않은 경우 StirngTokenizer를 사용하는 것이 간단하면서도 명확한 결과를 얻을 수 있을 것이다.

docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html

 

StringTokenizer (Java Platform SE 7 )

Constructs a string tokenizer for the specified string. All characters in the delim argument are the delimiters for separating tokens. If the returnDelims flag is true, then the delimiter characters are also returned as tokens. Each delimiter is returned a

docs.oracle.com

* split()은 빈 문자열도 토큰으로 인식하는 반면 StringTokenizer는 빈 문자열을 토큰으로 인식하지 않기 때문에 인식하는 토큰의 개수가 서로 다른 것을 알 수 있다.

* split()은 데이터를 토큰으로 잘라낸 결과를 배열로 담아서 반환하기 때문에 데이터를 토큰으로 바로바로 잘라서 반환하는 StringTokenizer보다 성능이 떨어진다. 그러나 데이터의 양이 많은 경우가 아니라면 별 문제가 되지 않으므로 크게 신경 쓸 부분은 아니다.