2019년 4월 1일 월요일

Hackerrank Day 1 Data Types


알고리즘 연습 사이트
www.hackerrank.com


Day 1:Data Types

Scanner Class API docs: https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html

* 기본 사용법
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();

* Scanner Class 주의사항

int, double등 Scanner 클래스의 메소드로 입력을 받아들인 후에 문자열을 입력받기 위해 nextLine 메소드를 바로 호출하게 되면 입력했던 문자열이 출력이 안되고 빈 공백으로 출력된다.

그 이유는 직전에 nextDouble 호출 시 데이터 입력 후 enter로 인해 숨어 들어갔던 개행 문자열이 남아 있다.
nextLine 메소드가 뒤에 바로 호출 되면, nextLine은 개행 문자열이 나타날 때까지 읽어들이기 때문에 앞전의 개행 문자를 체크하자마자 실행을 끝내버린다.
따라서 아무 문자열도 출력되지 않는다.
고로 nextLine 을 한번 더 호출해주고 정상적인 문자열을 입력받으면 된다.
Scanner sc = new Scanner(System.in);

int i = sc.nextInt();
double d = sc.nextDouble();
sc.nextLine(); //read newline character 
String s = sc.nextLine();

댓글 없음:

댓글 쓰기