반응형
BufferedReader를 통해 입력받을때 주의할 점!
1. 기본적으로 BufferedReader는 한 줄을 통째로 입력받는 방법으로 주로 쓰임.
2. readLine() 메서드는 값을 읽어올 때, String값으로 개행문자(엔터값)를 포함해 한줄을 전부 읽어오는 방식.
- 비슷한 예로 Scanner메서드 중 nextLine()도 스트링 값과 개행문자(엔터값)을 같이 읽어옴.(반면 next()는 개행문자는 제외하고 스트링 값만 읽어옵니다.)
3. read() 메서드는 값을 읽어올 때, int값으로 변형하여 읽어오는 방식.
- 예를들어 input.txt에 저장된 1이라는 숫자를 read()를 통해 읽어오면 int형 숫자 1을 읽어오는 것이 아닌, txt형식으로 저장된 ASCII 형식의 문자값 '1'을 읽어오는 것이므로 결국 int값으론 49를 읽어오는 것이 된다.
- 이를 해결하려면 int a = br.read() - 48; br.readLine(); 을 하여 ASCII 값에서 뻴셈을 이용한 뒤 엔터 값을 읽어오거나, int a = Integer.parseInt(br.readLine()); 를 통해 엔터값을 포함해 한줄을 통째로 입력받은 뒤 해당 스트링값을 int로 형변환 해주는 방법이 있다.
반응형
'Algorithm > Grammer of Java' 카테고리의 다른 글
[내가 모르는 자바 문법 3] 자바의 기본 데이터 타입의 종류 (0) | 2019.02.14 |
---|---|
[내가 모르는 자바 문법 2] 자바 플랫폼의 종류 (0) | 2019.02.14 |
[내가 모르는 자바 문법 1] 자바의 특징 (0) | 2019.02.14 |