본문 바로가기

JAVA

[JAVA] 자바 SCANNER(스캐너) 개행 문제/ 건너뛰기 / 값 못적음

 자바에서 nextLine()을 사용하는 경우 버퍼에 남아있는 개행문자로 인하여 다음 scanner에 입력이 안되고 띄어쓰기가 발생하여 공백이 저장되는 경우가 있다. 예시를 한번 참고해보자

 

 

이처럼 스캐너로 다른 값을 입력한 뒤 nextLine()을 통하여 문자열을 받으려고 하면 nextLine()이 다른 next()들이 버퍼에 남긴 개행(공백)을 인식하기 때문에 생기는 현상이다. 보이는 것과 같이 다른 next()를 nextLine()앞에 사용했을 때 공백을 인식하여 nextLine()은 입력을 하지 못하는 상태를 볼 수 있다. 이를 해결하기 위해는 공백을 인식하는 nextLine();을 원래 사용하려고 하는 nextLine() 앞쪽에 사용해주면 제대로 입력이 가능하다.

이처럼 scanner.nextLine()만 추가해주면 된다.

 

개행을 scanner.nextLine()으로 인식해줘서 모든 next()에 값을 넣을 수 있었다.