[Java] 자바 기본 입력문 Scanner 클래스 사용법 & 예제 총정리

자바를 처음 배울 때 콘솔에서 키보드 입력값을 받을 때 가장 많이 사용하는 클래스가 Scanner 클래스입니다. Scanner 클래스를 사용하는 방법이 자바에서 입력값을 받는 방법 중에 가장 간편하기 때문입니다. 가장 간편하기는 하지만 C언어나 파이썬과 같이 다른 프로그래밍 언어에서 사용하는 것보다는 그래도 절차가 까다롭습니다. 이번 포스팅에서는 자바의 Scanner 클래스의 사용법에 대해 알아보도록 하겠습니다.

 

Scanner 클래스의 특징

  • java.util 패키지에 포함되어 있어 java.util을 import를 해줘야 사용할 수 있다.
  • 기본적인 데이터 타입을 모두 입력받을 수 있다.
  • 토큰(공백, 개행, 탭)을 기준으로 데이터를 입력받는다.

 

 Scanner 클래스 사용법 

Scanner 사용 순서

import java.util.Scanner; // java.util의 Scanner 클래스 import
import java.util.*; // java.util에 있는 클래스 모두 import

1. Scanner는 java.util에 되어 있어 import를 해줘야 사용하실 수 있습니다. java.util.Scanner만 import 하셔도 되고 * 을 활용하여 util의 모든 클래스를 import하셔도 됩니다.

 

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

2. Scanner 객체를 생성합니다. 클래스명은 주로 sc로 많이 네이밍하며 위와 같이 생성하시면 됩니다. new는 새로운 객체를 heap 메모리에 할당하겠다는 의미이고 System.in은 화면에서 입력을 받겠다는 의미입니다. System.in은 입력한 값을 Byte 단위로 읽어주는 자바의 표준 입력 스트림입니다. 

 

String str = sc.next(); // 입력받은 문자열을 str에 저장

3. Scanner 객체를 사용하여 입력값을 받습니다. 참고로 입력받을 데이터 타입에 의해 Scanner 클래스의 메서드를 달리하셔야 합니다. 데이터 타입 별 메서드는 아래 표를 참고해 주세요.

 

Scanner 클래스의 메서드

토큰(Token) : 공백 문자(Spacebar), 탭(Tab), 개행(Enter) 등으로 구분되는 요소
메소드 설명
next() String을 읽음. 토큰(Token)을 기준으로 읽음.
nextLine() String을 읽음. 개행(Enter)을 기준으로 읽음.
nextInt() int 를 읽음.
nextBoolean() boolean 을 읽음.
nextByte() byte 를 읽음.
nextShort() short 를 읽음.
nextLong() long 을 읽음.
nextFloat() float 을 읽음.
nextDouble() double 을 읽음.

 

Scanner 클래스 사용 예제

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

public class Main {
	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);	// Scanner 객체 생성
        
        //기본타입
        byte a = sc.nextByte();       // byte 입력
        short b = sc.nextShort();     // short 입력
        int c = sc.nextInt();         // int 입력
        long d = sc.nextLong();       // long 입력
        
        //실수타입
        float e = sc.nextFloat();     // float 입력
        double f = sc.nextDouble();   // double 입력
        
        //논리타입
        boolean g = sc.nextBoolean();  // boolean 입력
        
        //문자열타입
        String h = sc.next();       // String 형 입력 (토큰을 기준으로 한 단어를 읽음)
        String i = sc.nextLine();   // String 형 입력 (개행을 기준으로 한 줄을 읽음)
		
        //출력문
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
        System.out.println(g);
        System.out.println(h);
        System.out.println(i);
    }
}

 

 

 

댓글

Designed by JB FACTORY