쫑쫑이의 블로그

버퍼 비우기(Scanner nextInt) 본문

공부/JAVA

버퍼 비우기(Scanner nextInt)

쫑쫑2 2022. 9. 9. 19:14

Scanner를 사용하여 입력값을 받는 과정 중에 다음과 같은 예시가 있으면

Scanner s = new Scanner(System.in);

System.out.println("num 값 입력");
int num = s.nextInt();
System.out.println("str1 값 입력");
String str1 = s.nextLine(); // 실행 안됐다고 느껴짐
System.out.println("str2 값 입력");
String str2 = s.nextLine();

num 값을 입력하고 enter를 누르면 "str1값 입력"과 "str2 값 입력"이 연속으로 출력됐다

String str1 = s.nextLine(); 부분이 그냥 넘어가 구글링 해보니...

 

nextInt가 버퍼에서 enter 입력하기 전 값만 가져오고

enter가 남은 상태로 nextLine이 호출되어 빈값이 들어가게 되는 것이었다

 

nextInt 사용 후 s.nextLine();을 추가적으로 호출하여 enter 값을 버퍼에서 제거해주면 된다 

 

 

 

참고 https://medium.com/@kimddub/java-scanner-%EB%B2%84%ED%8D%BC-%EB%B9%84%EC%9A%B0%EA%B8%B0-913c652cc144

 

[JAVA] scanner 버퍼 비우기

JAVA를 사용할 때 Scanner는 정말 많이 쓰이는 라이브러리입니다.

medium.com