Coding/JAVA

[JAVA] Scanner Class - next(), nextLine(), nextInt()

민톨이 2024. 3. 15. 18:06
728x90

JAVA에서 Scanner Class란?

- 화면이나 파일, 문자열 등의 입력으로부터 문자를 읽어주는 클래스이다
- import를 통해 호출해줘야 한다. java.util 패키지에 존재

 
- Scanner Class 객체 생성하기

  => Scanner Class는 객체생성을 무조건 해야 사용 가능
  => 화면 / 파일에서 입력 받을 수 있는데 어떤 데이터타입을 입력 받을 것이기 때문에 System.in을 사용


Scanner 입력 메서드 종류

메서드반환타입설명
next()String다음 토큰을 String타입으로 반환
(띄어쓰기 뒷 부분 읽지 않음)
nextLine()String개행 전까지의 한 줄을 읽고 "\n"값이 제외된 부분만 출력 
nextInt()Int다음 토큰을 int타입으로 반환

 

next()

-공백이나 'Enter Key'로 값 구분 입력 시 각각 변수에 저장 
 
예제)

스캐너 변수.next()의 줄 수만큼 input(입력값)을 받아준다.
이 예제에서 sc.next()가 3개 있고 3개를 출력하여 변수에 저장한다.
 
=> 즉, '한 단어' 씩 받는다.

input : i am mintoli  => 이 문장에서 공백은 총 2개니까 3개의 단어로 이루어진 셈이다.
 
만약 x2, x3만 있다면 i / am 까지만 받고 mintoli는 받지 못하는 셈이다.


nextLine()

- 한 줄 입력 모두 저장
 
예제)

nextLine()을 사용하여 x2, x3 총 두개로 받아보았다.
이러면 총 두 줄을 입력 받을 수 있다는 소리이다.
 
next()에서 공백 전까지의 한 단어씩만 변수에 저장했던 것에 반해, nextline()은 한 문장 단위로 (개행이 일어나기전) 받는다.

- i am mintoli / i want to be a coding gosu 라는 두 문장을 입력할 수 있다.
 => 그 이유는? nextLine()이 두개 있기 때문에 문장 두 개를 받을 수 있는 것이다.
 
- 만약 nextLine()이 하나만 있다면 어떻게 될까?

 => 이렇게 한 문장만 입력하고 저장할 수 있다.


 

nextInt()

- 입력값 정수 변환
 
예제)

- nextInt를 사용하려면 일단 변수 앞에도 String에서 int로 바꿔줘야 한다. 

만약 입력값으로 문자열을 사용한다면 이렇게 오류가 난다.
 

하지만! 이렇게 숫자를 입력해주면 아주 잘 출력된다 
 
추가)

next()처럼 nextInt()도 공백 전까지의 한 단어(?) 숫자(?) 숫자 한 덩어리만 받아준다.