Java/Algorithm

[Java-Algorithm]HackerRank - Java Stdin and Stdout II

Jeong Jeon
반응형

1). 문제

 

2). 풀이

import java.util.Scanner;

public class Solution {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int i = scan.nextInt();
        double d = scan.nextDouble();
        String T = scan.nextLine();
        String s = scan.nextLine();

        System.out.println("String: " + s);
        System.out.println("Double: " + d);
        System.out.println("Int: " + i);
    }
}

3). 설명

 

처음에 아무 생각없이 nextDouble()을 쓰고 바로nextLine()을 쓰고 쉽네~ 라고 했다.

하지만 오류!

이유 : nextDouble()(nextInt())를 사용하고 난뒤 nextLine()을 사용하면

버퍼에 남아있는 \n(Enter값)을 읽어들이기 때문에 nextLine() 메서드가 바로 리턴해버린다.

 

해결 : nextLine()을 호출하기 전에 nextLine()을 한번 써주면 버퍼에 있는 \n 읽어버리므로 그 다음 문자열이 잘 읽힌다.

 

PASS

반응형