큰 차이점은 '개행문자' 를 무시하냐 안하냐 이다.
개행문자
텍스트의 한줄이 끝남을 표시하는 문자
next()
공백을 기준으로 한 단어 또는 한 문자씩 입력받는다.
버퍼에 입력된 문자나 문자열에서 공백 전까지의 단어를 읽는다.
개행 문자를 가져오지 않는다.


hello world라고 입력했으나 hello 만 나오게됨.
nextLine()
문자 또는 엔터를 치기 전까지의 문장 전체를 입력받는다
버퍼에 입력된 문자열을 개행 문자까지 다 가져온다.


hello world를 치고 엔터를 쳤을때 hello world 그대로 나온다.
여기서 주의할 점은 nextLine()을 이어서 만들었을때 한줄이 밀려서 나오는 현상이 생긴다.

위와 같이 되어있을때
<입력>
제목
4
일
이
삼
사
오
<출력>
제목
4
일
이
삼
사
오
위의 예시와 같이 될것 같으나 실제론 다르게 나온다

별점 후 한칸이 밀려서 출력이 됐다.
이러한 이유는 nextLine()은 공백을 포함한다.
next()의 경우 공백을 포함하지 않는다.
즉 공백전까지 next()에 입력되고 공백이 다음 nextLine()에 들어가 버려서 밀려버리는 것이다.
해결을 위해서는 사이에 nextLine()을 넣어주면 된다.

공백을 먹어줄 nextLine()을 하나 넣어줬다.

입력한대로 잘 나오는 것을 확인 할 수있다.
문제를 풀면서 빈칸이 생기는 문제 때문에 next() 와 nextLine()에 대해 찾아봤다.
'java 배우기 > TIL' 카테고리의 다른 글
| Java Arrays.sort 사용 (0) | 2024.07.25 |
|---|---|
| java 연산 결과를 삭제하고 저장하기 (2) | 2024.07.24 |
| intellij 줄 맞추기 및 줄 바꾸기 (1) | 2024.07.23 |
| java 기초 강의 (2) | 2024.07.22 |
| SQL) replace, substring, concat (0) | 2024.07.18 |