입력할 때 nextline() 과 next()에 대해

2j1ejyu Reply 6 years 8 weeks ago
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); String a = input.next(); String b = input.nextLine(); System.out.printf("%s\n%s",a,b); } } Line을 넣었을 때와 넣지 않았을 때의 차이는 알겠습니다만 이렇게 둘이 같이 쓰면 문자열 하나만 입력해도 바로 출력이 되버리던데 왜 그런건가요?
onacloud Reply 6 years 8 weeks ago
next의 경우 공백을 만날때까지 모든 문자열을 읽습니다. nextLine의 경우 \n(줄바뀜)을 만날때까지 모든 문자열을 읽습니다 이게 약간 충돌되는게 next의 경우 공백이 아닌 문자열을 만날때까지 모든 엔터를 무시하지만 nextLine은 엔터를 무시하지 않죠. 그래서 예기치 않게 위의 예제에서 a(엔터) 하게 되면 프로그램이 종료되게 됩니다. next를 통해서 a를 읽어들이고 커서는 a뒤에 있다가 nextLine을 통해서 엔터를 읽어버리게 되는것이죠.