BufferedReader와 StringTokenizer

SEUNGHYEON HEO·2022년 10월 28일

알고리즘 코딩테스트 책에서
구간합 구하기 문제를 풀며
bufferedReader와 StringTokenzier를 사용하게 되었다.
이 두가지는 언제 쓰고 왜 쓰이는 걸까?

BufferedReader

buffer란?
컴퓨팅에서 버퍼는 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역이다.
버퍼링이란 버퍼를 활용하는 방식 또는 버퍼를 채우는 동작을 말한다. 다른 말로 '큐'라고도 표현한다.

BufferedReader는 Reader를 상속받은 클래스이며
문자, 배열 및 줄을 효율적으로 읽을 수 있도록 한다.

StringTokenizer

String tokenizer 클래스는 어플리케이션이 string을 token으로 바꿀 수 있게 해준다.

StringTokenizer 메서드는 식별자, 숫자 및 따옴표로 묶인 문자열을 구별하지 않으며 주석을 인식하고 건너뛰지 않는다.

StringTokenizer 객체는 내부적으로 토큰화할 문자열 내의 현재 위치를 유지한다. 일부 작업은 처리된 문자를 지나 현재 위치를 진행시킨다.

개체를 만드는 데 사용된 문자열의 하위 문자열을 가져옴으로써 토큰이 반환된다.

다음은 토큰화 사용의 한가지 예시다.

 StringTokenizer st = new StringTokenizer("this is a test");
 while (st.hasMoreTokens()) {
     System.out.println(st.nextToken());
 }

prints the following output:

 this
 is
 a
 test

StringTokenizer는 호환성을 이유로 유지되는 레거시 클래스이지만 새 코드에서는 사용하지 않는다.

이 기능을 원하는 사람은 String의 분할 메서드나 java.util.regex 패키지를 대신 사용하는 것이 좋다.

 String[] result = "this is a test".split("\\s");
 for (int x=0; x<result.length; x++)
     System.out.println(result[x]);

prints the following output:

 this
 is
 a
 test

 

출처
(오라클 사이트에 있는 영문을 번역했더니 말투가 상당히 어색하다..)

https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html
https://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html

profile
Step by step

0개의 댓글