본문 바로가기

알고리즘

Scanner의 메소드 정리

백준 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 다음의 개행문자를 그대로 읽어와서 출력했기 때문이다.