BufferedReader

: BufferedReader는 버퍼를 사용해 입력을 효율적으로 읽는 클래스로, Scanner보다 속도가 빠름
 
[사용방법]

import java.io.BufferedReader;
import java.io.InputStreamReader;

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();  // 한 줄 입력

* readLine() :  한 줄을 통째로 문자열로 읽어옴
 
 

StringTokenizer

:문자열을 구분자(delimiter)를 기준으로 잘라서 각각의 토큰(Token) 으로 분리하는 데 사용
 
[사용방법]

import java.util.StringTokenizer;

StringTokenizer st = new StringTokenizer("10 20 30");
while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}

 
 
 
 BufferedReader + StringTokenizer 사용

import java.io.*;
import java.util.*;
public class P1546 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // 정수 입력
        int n = Integer.parseInt(br.readLine());

        // 공백으로 구분된 정수들 입력
        StringTokenizer st = new StringTokenizer(br.readLine());

        int sum = 0;
        for (int i = 0; i < n; i++) {
            int value = Integer.parseInt(st.nextToken());
            sum += value;
        }

        System.out.println(sum);
    }
}

 
 
* nextToken() :  StringTokenizer 클래스에서 **다음 토큰(문자열 덩어리)**을 꺼내오는 메서드

String line = "100 200 300";
StringTokenizer st = new StringTokenizer(line);

System.out.println(st.nextToken()); // "100"
System.out.println(st.nextToken()); // "200"
System.out.println(st.nextToken()); // "300"

+ Recent posts