java 배우기/TIL

java next(), nextLine() 차이

checkuu 2024. 7. 23. 21:25

큰 차이점은 '개행문자' 를 무시하냐 안하냐 이다.

개행문자

텍스트의 한줄이 끝남을 표시하는 문자

 

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