티스토리 뷰

반응형

 

StringTokenizer

StringTokenizer 클래스는 문자열을 우리가 지정한 구분자로 문자열을 쪼개주는 클래스입니다. 그렇게 쪼개어진 문자열을 우리는 토큰(token)이라고 부릅니다.

 

String : 문자열을

Tokenizer : 토큰화한다.

이렇게 해석할 수 있는데요, 즉 토큰은 분리된 문자열 조각으로, 스트링토크나이저 클래스는 하나의 문자열을 여러 개의 토큰으로 분리하는 클래스인거죠.

 

StringTokenizer 작동 방식

StringTokenizer의 인스턴스는 returnDelims Flag가 가지고 있는 true 혹은 false에 따라 토큰을 분리할지 정합니다.

- 만약 false일 경우 한 문장을 각 연속된 문자로 빈칸에 따라(혹은 기에 따라) 여러 토큰으로 분리합니다. 

- 만약 true일 경우 전체를 한 토큰으로 간주합니다. 

 

StringTokenizer 생성자

 

StringTokenizer와 Split의 차이

- StringTokenizer는 문자 또는 문자열로 문자열을 구분한다면, split는 정규표현식으로 구분한다.

- StringTokenizer는 빈 문자열을 토큰으로 인식하지 않지만 split는 빈 문자열을 토큰으로 인식하는 차이가 있다.

- 배열에 담아 반환하는 스플리트는 데이터를 바로바로 잘라서 반환해주는 스트링토크나이져보다 성능이 약간 뒤쳐진다.

- 하지만 StringTokenizer는 Java API 설명서에서는 사용을 권장하지 않으며 유사한 요구 사항을 충족하기 위해 대신 String 클래스의 split 메서드를 권장합니다. 

 

 String[] result = "이것은 테스트입니다".split("\\s");
     for (int x=0; x<result.length; x++)
         System.out.println(result[x]);

 

- 왜 StringTokenizer는 Deprecated 되었을까?

StringTokenizer에는 상식적으로 심각한 문제가 있습니다. 연속 구분 기호를 하나의 구분 기호로 취급합니다. 이것은 일반적이거나 전통적인 의미가 아닙니다. 예를 들어 csv에서 'a,,b'는 두 번째 필드가 비어 있는 3개의 필드를 의미합니다. 그러나 Stringtokenizer에서는 기본적으로 이것을 2개의 필드로만 보고 ',,'는 ','로 간주합니다. 이것은 이미 많은 프로그래머를 혼란스럽게 하고 불필요한 디버깅 노력을 경험하게 합니다.

 

참고: https://reakwon.tistory.com/90,https://www.developer.com/database/exploring-the-java-string-tokenizer/,https://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html,https://stackoverflow.com/questions/6983856/why-is-stringtokenizer-deprecated

 

[자바/JAVA] StringTokenizer를 이용해 문자열을 쪼개보자

StringTokenizer StringTokenizer 클래스는 문자열을 우리가 지정한 구분자로 문자열을 쪼개주는 클래스입니다. 그렇게 쪼개어진 문자열을 우리는 토큰(token)이라고 부릅니다. StringTokenizer를 사용하기 위

reakwon.tistory.com

 

Parse

 

 

 

반응형

'JAVA' 카테고리의 다른 글

[JAVA] 인터페이스  (0) 2023.02.23
[JAVA] 람다  (1) 2023.01.30
[JAVA] JVM  (0) 2023.01.14
[JAVA] 객체지향설계 5원칙 - SOLID  (0) 2022.11.07
[JAVA] Stream  (0) 2022.09.14
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함