백준 3184문제를 풀면서 Scanner 메소드에 대해 의문이 생겨서 정리를 해보았다.
next() : 공백(띄어쓰기)을 기준으로 문자열 입력 받는다.
nextLine(): 한줄(개행문자, 엔터)을 기준으로 입력을 받는다.
nextInt(): 공백(띄어쓰기)을 기준으로 int값 읽어온다.
hasNext(): 입력된 토큰이 있으면 true 없으면 false를 반환
토큰에 개행문자만 남아있는 경우에는 false를 반환하지만 개행문자는 그대로 남아있다.
* next()와 nextLine()의 차이
next()는 개행문자(/n)을 무시하고 문자열을 입력 받아온다.
nextLine()은 개행문자(/n)까지 읽어서 문자열을 입력 받아온다.
출력값 >>
입력값은 초록색 부분으로 다음과 같다.
6 6
...#..
.##v#.
#v.#.#
#.o#.#
.###.#
...###
알게된 점1)
6이 ...### 바로 뒤에 위치한것은 System.out.println()이 print후 개행이 이루어지기 때문이다
알게된 점2)
원래 생각대로라면 a는 ...#.. 를 출력해야한다. 하지만 아무것도 출력되지 않았다.
이유는 nextLine()는 개행문자까지 읽어오기 때문이다.
두번째 6 다음의 개행문자를 그대로 읽어와서 출력했기 때문이다.