ComputerScience/Java

BufferedReader, StringTokenizer 주요 메서드

imachill7guy 2025. 2. 24. 13:47

📌 1. BufferedReader 주요 메서드

🔹 1.1 readLine()

  • 한 줄(\n을 기준) 전체를 문자열(String)로 읽음
  • 공백도 포함해서 읽음
  • 입력이 없으면 null을 반환
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
System.out.println("입력: " + input);

 

예제 입력:

Hello World!

 

 

출력:

입력: Hello World!

 

🔹 1.2 read()

  • 한 글자(문자 하나)를 정수(ASCII 값)로 반환
  • 더 이상 읽을 문자가 없으면 -1 반환
int ch = br.read();
System.out.println((char) ch); // 문자로 출력

 

예제 입력:

A

 

출력:

A

 

🔹 1.3 read(char[] cbuf, int off, int len)

  • 여러 글자를 한 번에 읽어 char[] 배열에 저장
  • off는 시작 위치, len은 읽을 문자 개수
char[] buffer = new char[10];
br.read(buffer, 0, 5);
System.out.println(buffer);

 

예제 입력:

HelloWorld

 

출력:

Hello

 

🔹 1.4 close()

  • 스트림을 닫음 (사용이 끝나면 닫아야 함)
br.close();

 

📌 2. StringTokenizer 주요 메서드

StringTokenizer는 문자열을 특정 구분자로 나눌 때 사용
(공백 기준으로 자를 때 split()보다 빠름!)

StringTokenizer st = new StringTokenizer("Java is fun");

🔹 2.1 nextToken()

  • 다음 토큰을 반환
  • 남은 토큰이 없으면 NoSuchElementException 발생
StringTokenizer st = new StringTokenizer("Java is fun");
System.out.println(st.nextToken()); // "Java"
System.out.println(st.nextToken()); // "is"
System.out.println(st.nextToken()); // "fun"

 

Java
is
fun

 

🔹 2.2 hasMoreTokens()

  • 더 읽을 토큰이 있는지 확인 (true / false 반환)
while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}

 

출력:

Java
is
fun

 

🔹 2.3 countTokens()

  • 남은 토큰 개수 반환
StringTokenizer st = new StringTokenizer("Hello,World,Java", ",");
System.out.println(st.countTokens()); // 3

 

출력:

3

 

🔹 2.4 StringTokenizer에서 구분자 지정

  • StringTokenizer(문자열, "구분자")로 특정 구분자를 지정할 수 있음
StringTokenizer st = new StringTokenizer("Hello,World,Java", ",");
while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}

 

출력:

Hello
World
Java

 

🎯 정리

클래스메서드설명

BufferedReader readLine() 한 줄 입력 (String 반환)
  read() 한 문자 입력 (ASCII 정수 반환)
  read(char[], off, len) 여러 문자 읽어 배열에 저장
  close() 입력 스트림 닫기
StringTokenizer nextToken() 다음 토큰 반환
  hasMoreTokens() 더 읽을 토큰이 있는지 확인
  countTokens() 남은 토큰 개수 반환

BufferedReader는 빠르게 입력받을 때 사용!
StringTokenizer는 문자열을 구분자로 나눌 때 사용!