[JAVA] Scanner/스캐너 클래스
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); // 총 합 출력
}
}
- 실행결과