본문 바로가기

Java

[Java] 입력을 알아보자(Scanner, BufferedReader, StringTokenizer)

반응형

보통 Java에서 입력을 수행할 때 Scanner를 많이 쓰는데,

BufferedReader를 사용하면 속도가 거의 절반이나 빨라진다는 것을 알았다!!

-> 알고리즘을 풀 때 시간 초과가 나는 문제를 BufferedReader로 바꾸면 운 좋게 통과될 때가 있을 정도

 

Scanner와 BufferedReader, StringTokenizer 사용법을 알아보자

Scanner

Scanner를 사용하여 int, string, double 등의 데이터 입력을 받아 보았다.

이렇게 코드를 짰을 때, 위와 같은 오류가 나는데,

이것은 sc.nextInt() 다음 sc.nextLine()을 사용할 때 버퍼를 비워주지 않은 채로 실행해서

String에 엔터가 저장되고, double에 내가 쓴 string 값이 저장되었기 때문이다.

 

그래서 저렇게 버퍼를 비워주기 위한 sc.nextLine()을 중간에 추가해주면 에러 없이 잘 실행된다.

BufferedReader

BufferedReader는 기본적으로 '문자열'만을 받기 때문에 int나 double로 받고싶다면 형 변환을 반드시 해 주어야 한다.

StringTokenizer

StringTokenizer는 보통 공백을 기준으로 여러 데이터를 입력받을 때, BufferedReader와 함께 사용한다.

 

StringTokenizer 역시 문자열만을 기본으로 받기 때문에 다른 자료형으로 받기를 원한다면 형 변환을 해 주어야 한다.

반응형