자바 next() 와 nextLine() 함수의 차이.
문자을 입력 받는데 next와 nextLine를 봤습니다.
nextLine()는 잘 되는데 next는 안되는 경우도 있고..
뭔가 다르긴 한데 뭔지 잘 모르겠어서 확인해 봤습니다.
일단 결과부터 이야기 하자면,
next()는 공백을 기준으로 반환.
nextLine()는 엔터키. 즉 한 줄을 반환
위에서 보이듯이 nextLine는 공백을 포함하고 한 줄 자체를 반환합니다.
하지만 next()함수는 next 다음 공백을 전까지 반환합니다.
그래서 next test 에서 next만 저장이 되는 거죠.
때문에 이를 잘못 사용하면 아래와 같은 문제가 발생합니다.
위 사진은 이 전 코딩과 동일하나 next()와 nextLine()함수의 순서만 바꾸었습니다.
발생하는 문제는 next()함수가 next 다음 공백 전까지만 인식해서 next를 반환하고
그 다음에 test를 가지고 버퍼에 담고 있다가, nextLine()을 받는 곳에서
자동으로 버퍼에서 옮겨지는 것이죠.
nextLine() 사용하기 : <-여기서 새로 문자를 입력 받아야 했으나, 버퍼에 있던 test가 들어가버림.
때문에 자동으로 입력은 넘어가 버리고. test가 반환되서 변수 two에 test가 들어가 test가 출력되는 거죠.
next()함수 사용하면서 이상하게 원하는 대로 잘 안될 때가 있었는데. 이것 때문이었네요.
유용한 정보가 되셨다면 아래 손가락 버튼 한번 눌러주세요 ^-^
'프로그래밍. > Java' 카테고리의 다른 글
[자바] for each문 사용법. (0) | 2011.04.11 |
---|---|
[자바] 배열 선언 방법 (0) | 2011.04.11 |
[자바]Math.random() 랜덤함수 이해하기. / 간단예제 (0) | 2011.04.06 |
Eclipse 자바 파일 생성하기 / 자바 프로젝트 만들기. (0) | 2011.03.31 |
[자바] 자바패스 설정 / java path 설정. (window7 포함) (0) | 2011.03.23 |