JAVA

[JAVA] Scanner/스캐너 클래스

minsukim.kms 2022. 7. 2. 19:32

Scanner 클래스

자바에서 키보드로 입력받기 위해 사용하는 대표적인 방법

 

 


특징

1. 기본적인 데이터 타입들을 Scanner의 메소드를 사용하여 입력받을 수 있다.

   예를 들어, 100을 입력하고자 할 때 String(문자열)로 입력받고 싶으면 next() 나 nextLine()을,

   int(정수)로 입력받고 싶다면 nextInt()를 사용하여 입력받으면 해당 타입으로 입력된다.

 

2. Scanner 사용 시 util 패키지 경로의 Scanner 클래스를 호출해야 한다.

   자바에서 쓰이는 대부분 클래스는 import를 통해 호출해주어야 한다.

   Scanner의 경우 java.util 패키지에 있다.

 

3. 띄어쓰기(공백) 또는 줄 바꿈(개행)을 기준으로 읽는다.

   Scanner의 입력 메소드는 대부분 공백과 개행을 기준으로 읽는다. 

   예를 들어, "hello world" 입력 시 공백을 기준으로 한 단어를 인식한다.

 

 

 


 

Scanner의 사용

 

  • Scanner 클래스 호출
import java.util.Scanner;

 

 

  • Scanner 객체 생성
Scanner sc = new Scanner(System.in);

Scanner sc : 스캐너 장치의 위치정보를 저장할 용도의 참조변수

new Scanner(System.in) : 키보드와 연결될 스캐너객체 생성

     *System.in : 표준입력 스트림 요청(ex.키보드)

     *System.out : 표준출력 스트림 요청(ex.모니터)

Scanner sc = new Scanner(System.in) : 키보드와 연결되는 스캐너객체 만들어 sc참조변수에 연결시킨다

 

 

 

  • 메소드를 이용하여 입력
in.next()  // String 형 입력 및 리턴 (공백 기준으로 한 단어 읽음)
in.nextLine() // String 형 입력 및 리턴 (개행 기준으로 한 줄 읽음)
in.nextInt() // int 형 입력 및 리턴

위의 예시는 주로 사용되는 입력 메소드 이다.

입력하고자 하는 데이터 타입에 따라 다양한 메소드를 이용한다.

 

*여기서 주의할 점*

next() 사용 시 "hello world"를 입력한다면  공백 전 인 hello만 읽는다.

따라서 입력하고자 하는 단어를 공백 없이 입력해야 한다.

 

nextLine() 사용 시 "hello world"를 입력한다면 줄바꿈(Enter) 전 인 hello world 모두 읽는다.

 

 

 


 

 

Scanner 사용 예시

  • 정수 3개를 입력 받아 총합을 출력하기
package Ch04;

import java.util.Scanner; //scanner 클래스 호출

public class C01Scanner {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in); // Scanner 객체 생성

		System.out.print("정수 3개 입력 : "); 
		int num1 = sc.nextInt(); // nextInt() 메소드로 입력받기
		int num2 = sc.nextInt();
		int num3 = sc.nextInt();
		int sum = num1 + num2 + num3; //정수의 총 합을 변수 sum에 저장
		System.out.println("총합 : " + sum); // 총 합 출력
		
	}

}

 

  • 실행결과