Language/Java

문자열 나누기 - StringTokenizer

지팡구 2022. 8. 3. 02:34

알고리즘 문제를 풀다 궁금한 것이 생겨 이렇게 정리해놓는다.

우리는 여러 방법을 이용해 문자열을 나눌 수 있다. 

배열을 이용하면 불필요한 메모리를 사용하게 되어 성능에 이슈가 생길 수 있다. 외에도 split 존재

 

그래서 문자열을 나누기 위한 방법으로 StringTokenizer을 사용하게 되는데, 이 클래스를 이용해 문자열을 나누게 되면 나누어진 문자열을 토큰이라고 부른다.

 

참고 :

https://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

 

사용하기 위해선 java.util을 import 해줘야하는데, 구현 도구의 단축키를 사용하면된다 ..

 

StringTokenize를 사용하는 방법은 다음과 같다.

 

StringTokenize st = new StringTokenize(문자열);

StringTokenize st = new StringTokenize(문자열, 구분자)

StringTokenize st = new StringTokenize(문자열, 구분자, true/false)

첫번째 경우엔 바로 문자열을 삽입하는 경우로 띄어쓰기를 기준으로 나눠지게 된다.

두번째 경우엔 구분자를 설정해 문자열을 분리한다.

마지막으로는 boolean 값도 토큰으로 취급하는데, true이면 구분자도 토큰으로 취급하고 false이면 구분만 하고 토큰에는 포함하지 않는다.

 

또한 StringTokenizer는 다양한 메소드를 지원한다.

 

문자열을 나누는 방법으로 StringTokenize를 알아봤는데 이 것외에도 Split이라는 것이 있다.

 

둘 다 문자열을 파싱하는 방법으로 사용하며 차이점으로는 StringTokenize는 클래스 Split은 메소드

StringTokenize는 문자 혹은 문자열로 구분, split은 정규표현식으로 구분

빈 문자열을 토큰으로 인식하는 split, 인식하지 않는 StringTokenize

StringTokenize는 결과값이 문자열이지만 split은 결과 값이 문자열 배열이다. 따라서 성능이 전자가 더 좋을것이다.

'Language > Java' 카테고리의 다른 글

Reflection(리플렉션)이란?  (0) 2023.04.01
객체 지향적 설계?  (0) 2022.11.21
자료형과 BigDecimal 그리고 소수점(부동, 고정)  (0) 2022.05.22
String 과 JVM  (0) 2022.05.22
예외 처리(Exception)  (0) 2022.05.15