버퍼 지우기

hyunwoo·2022년 10월 19일
0

🌳 Java 지식

목록 보기
13/21
import java.util.Scanner;

(생략)

Scanner sc = new Scanner(System.in);
String name1 = sc.nextLine();
String name2 = sc.next();
String name3 = sc.nextLine();

System.out.println(name1);
System.out.println(name2);
System.out.println(name3);

이렇게만 하면

이런 식으로 입력을 3개를 하지 못한다.

이를 해결하기 위해서는 버퍼를 지우는 것이 필요하다.
먼저 버퍼가 발생하는 이유는
Sring next()의 경우 키보드로 입력된 값을 문자열로 읽어서 반환하지만 엔터('\n')는 읽지 않는다.

String nextLine()의 경우 '\n'을 포함하는 한 라인을 읽고 '\n'을 버린 나머지 문자열을 리턴한다.

결국 위의 코드에서 sc.next()로 인한 입력으로 '\n'이 버퍼에 남았다.
지우려면 sc.nextLine(); 을 추가하여 '\n'을 읽어드려 버퍼를 비울수 있다.

import java.util.Scanner;

(생략)

Scanner sc = new Scanner(System.in);
String name1 = sc.nextLine();
String name2 = sc.next();
sc.nextLine(); //버퍼를 읽어서 비운다.
String name3 = sc.nextLine();

System.out.println(name1);
System.out.println(name2);
System.out.println(name3);

0개의 댓글