728x90
next()와 nextLine()의 차이
next()
- 공백을 기준으로 한 단어 또는 한 문자씩 입력받는다.
- 버퍼에 입력된 문자나 문자열에서 공백 전까지의 단어를 읽음. 그래서 개행 문자를 가져오지 않는다.
nextLine()
- 문자 또는 문장 한 라인 전체를 입력받는다.
- 버퍼에 입력된 문자열을 개행 문자까지 다 가져온다.
ex)
Hello World 입력
next() : Hello만 출력
nextLine() : Hello World 출력
nextInt() 사용 후 nextLine() 사용 시 문제 발생
- nextInt()는 개행 문자를 제거하지 않는다. 그래서 버퍼에 개행 문자가 남아있게 된다. 여기서, nextLine()을 사용하게 되면 개행 문자를 만나서 개행 문자를 받게 된다. 따라서 원하는 문자열을 입력받지 못할 수 있다.
문제 해결 방법
- nextInt()와 nextLine() 사이에 nextLine()을 하나 추가하여 개행 문자를 버퍼에서 없애주면 원하는 문자열을 입력받을 수 있다.
728x90
'Java' 카테고리의 다른 글
컬렉션 프레임워크 : Queue, Deque (0) | 2021.04.04 |
---|---|
컬렉션 프레임워크 : List < ArrayList, Vector, LinkedList, Stack > (0) | 2021.03.31 |
컬렉션 프레임워크 : Map (0) | 2021.01.13 |
컬렉션 프레임워크 : Set < HashSet, TreeSet, LinkedHashSet > (0) | 2021.01.13 |
ArrayList<> 안에 ArrayList<> : 이차원 배열 (0) | 2020.09.20 |