개발자 Saaad

[JAVA] BufferedReader를 이용해 값을 입력 받는 방법 본문

학습/kakao X goorm 풀스택12회차

[JAVA] BufferedReader를 이용해 값을 입력 받는 방법

Saaad 2025. 1. 14. 15:50

1) 정수형을 enter 기준으로 입력 받을 때

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.io.IOException;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        int[] nums = new int[5];
        StringTokenizer st = new StringTokenizer(bf.readLine());
        for(int i = 0; i < 5; i++)
            nums[i] = Integer.parseInt(st.nextToken());
    }
}

 

- 위 방법은 BufferedReader 객체 bf 를 선언하고 nums 배열을 선언해놓고 StringTokenizer를 이용해 bf.readLine()을 통해 입력받은 문자열을 엔터를 통해 구분하여 for문을 돌면서 각 num[index] 자리에 값을 할당한다.

 

할당할 때 주의점은 for문에서 nums 배열에 정수를 할당할 때 입력받은 문자열은 string형태이기 때문에 Integer.parseInt()를 써서 반드시 형변환을 해주어야 한다.


2) 정수형을 공백 기준으로 입력 받을 때

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(bf.readLine());
    }
}

- 객체 bf를 선언하고 Int형 변수 N을 선언하고 입력받은 문자열을 정수형으로 형변환하여 바로 할당한다.

 

 

3) 여러 정수를 공백 기준으로 입력 받을 때 

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        String str = br.readLine();

        int X = Integer.parseInt(str.split(" ")[0]);
        int Y = Integer.parseInt(str.split(" ")[1]);

        System.out.println(X);
		System.out.println(Y);                
    }
}

- 입력받은 문자열을 str에 저장하고 str을 split() 을 이용해 공백을 구분하여 값을 X, Y에 할당한다.

 

4) 문자열을 enter 기준으로 입력 받을 때

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Num1181 {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String[] words = new String[5];
        for(int i = 0; i < 5; i++)
            words[i] = bf.readLine();
    }
}

- 1) 과 유사한데 문자열을 enter로 나눠받는 것이기 때문에 따로 형변환은 필요없다. 

 

 

https://coding-ga-ding.tistory.com/163

 

[Java] BufferedReader로 입력 받기

원래는 Java에서 입력을 받는 방법 중 Scanner를 이용하고 있었는데, 이 방법이 시간을 많이 잡아먹어서 TimeLimited 문제가 많이 발생했다. 그래서 이제는 시간을 단축시키기 위해 BufferedReader 방법으

coding-ga-ding.tistory.com