이제까지 내가 사용하지 않았던
자바의 BufferedReader와 StringBuilder, StringTokenizer 그리고 BufferedWriter에 대해
공부한다.
여기서는 StringTokenizer
StringTokenizer는 자바 원문에 따르면
문자열 토크나이저 클래스를 사용하면 응용 프로그램에서 문자열을 토큰으로 나눌 수 있습니다. StreamTokenizer토큰화 방법은 클래스 에서 사용하는 방법보다 훨씬 간단합니다 . 메서드 는 StringTokenizer식별자, 숫자 및 인용 문자열을 구분하지 않으며 주석을 인식하고 건너뛰지 않습니다.
https://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html
이 StringTokenizer는 String클래스의 split메서드과 자주 비교가 되는데
split는 자바 원문에 따르면(String 클래스 설명 참조)
주어진 정규식 과 일치하는 항목을 중심으로 이 문자열을 분할합니다 .
https://docs.oracle.com/javase/7/docs/api/java/lang/String.html
우선 StringTokenizer과 split은 클래스와 메서드라는 점에서부터
차이가 나는데 이것보다는 둘을 구분짓는 가장 큰 차이는
자바 원문에서도 나와있듯이
StringTokenizer는 문자열을 토큰으로 나누고
split는 문자열을 정규표현식의 방식으로 나눈 다는 것이다.
이때 말하는 토큰이란
일련의 문자열을 구분할 수 있는 단위 또는 시스템에서
보안 객체의 접근 관리에 사용되는 객체 또는 장치를 말한다.
https://terms.naver.com/entry.naver?docId=857716&cid=42346&categoryId=42346
또한 정규표현식이란
정규 표현식(正規表現式,영어:regular expression, 간단히regexp[1]또는regex, rational expression)[2][3]또는정규식(正規式)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는형식 언어이다. 정규 표현식은 많은 텍스트 편집기와프로그래밍 언어에서 문자열의 검색과 치환을 위해 지원하고 있으며,
https://ko.wikipedia.org/wiki/%EC%A0%95%EA%B7%9C_%ED%91%9C%ED%98%84%EC%8B%9D
즉 StringTokenizer는 문자열을 구분할 수 있는 단위(토큰)로
문자열을 나누기 때문에
StringTokenizer에 속한 메소드
nextToken을 사용해 토큰을 뽑아와
문자열을 리턴해주는 것이다.
반면 split은 문자열의 집합을 표현하는 형식 언어로
문자열을 나누기 때문에
정규표현식으로 계산된
문자열 배열을 리턴해주는 것이다.
그래서 누가 빠른가?
그것에 대해 조사해본 바로는 각 상황에 따라 차이가 있다고 한다.
이에 대한 자세한 설명은 아래 글을 참조하면 된다.
StringTokenizer에 대해 조사하다가 찾은 글이다.
자바 원문같이 글로만 표현된거 이외에
자바내에서 직접 하나씩 뜯어보면서 테스트하셔서
얻으신 결과이다.
본받아야겠다.
StringTokenizer 간단 정리 끝
잘못된 정보 말씀해주시면 수정합니다. 읽어주셔서 감사합니다.
'자바 공부' 카테고리의 다른 글
java main 메서드 (2) | 2024.10.16 |
---|---|
StringBuilder 정리 (0) | 2022.09.29 |
BufferedReader 정리 (0) | 2022.09.28 |