728x90
백준 문제를 풀다보니 입력을 받을 때 Scanner 사용보다 BufferedReader 사용할 때 더 빠르다!
버퍼를 사용하는 BufferedReader는 키보드의 입력이 있을 때마다 한 문자씩 버퍼로 전송하고 가득차거나 개행 문자가 나타나면 버퍼의 내용을 한번에 전달한다
버퍼를 사용하는 입력은 바로 프로그램에 전달된다.
키보드에 입력을 할때마다 바로 전달하는 것보다는 중간에 버퍼를 두어 한번에 보내는 것이 더 효율적이고 빠르다!
하지만 입력을 받는 것이 몇 개 없다면 Scanner가 훨씬 편하다!
nextInt(), next(), nextLine() 3개로 String을 int으로 변환하지 않아도 쉽게 입력 받을 수 있다.
BufferedReader 사용법을 알아보겠다.
일단 1개의 숫자를 입력 받아 볼 것이다.
<java />
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
위와 같이 정수로 변환해주어야 한다.
이번에는 숫자 N를 입력 받고 한 줄에 N만큼의 숫자를 입력받아 볼 것이다.
<java />
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine()); //() 안에 (input , " ") 와 같이 공백을 기준으로 읽을 것인지 지정해 줄 수 있다, 공백이 기본 값
for(int i = 0; i < N; i++){
System.out.println(st.nextToken());
}
<shell />입력 3 1 2 3 출력 1 2 3
StringTokenizer를 사용하면 공백 문자를 기준으로 읽는다.
728x90
반응형
'▸Java' 카테고리의 다른 글
[JAVA] StringBuilder 사용하기 (0) | 2023.09.05 |
---|---|
[Java] int 배열 List로 바꾸기 (Arrays.asList 사용) (4) | 2023.04.16 |
[Java] int 배열 인덱스 찾기 Arrays.binaraySearch() ( list의 contains 처럼 ) (0) | 2023.04.16 |