[JAVA] 표준 입력과 Scanner 클래스

용용학생·2024년 4월 7일

자바

목록 보기
6/32

표준 입력

모든 프로그래밍에서는 시스템 표준 입출력 장치가 있다.
자바에서는 java.lang.System 이라는 표준 입출력 클래스를 제공해준다.
System 클래스의 멤버 변수인 in을 이용해 표준 입력을 사용할 수 있다.

System.in

  • 키보드로 입력 받기 위한 표준 입력 스트림
  • 키 값 1개만을 입력받을 수 있음
  • 문자가 아닌 바이트로 리턴
  • System.in 을 사용하면 바이트를 문자나 숫자로 다시 변환해야 하는 번거로움이 있음

바이트 단위로 입력을 받는 것을 원하는 타입으로 변환해주는 자바 클래스가 있다.
Scanner 클래스를 사용!!

Scanner 클래스

  • 읽은 바이트 값을 문자, 정수, 실수, 문자열 등의 타입으로 변환하여 리턴
  • 입력된 키를 공백 을 구분자로 읽음

Scanner 사용법

import 문

  • Scanner를 사용하기 위해서는 클래스 경로를 호출해주어야 한다.
import java.util.Scanner; // java.util 패키지 안에 Scanner 클래스 호출

import 문 이란 다른 패키지의 클래스를 사용할 때마다 작성하면 번거로우니
컴파일러에게 클래스가 속한 패키지를 미리 알려주는 것이다.

Scanner의 객체 생성

  • 입력을 위해서는 Scanner 클래스의 객체를 생성해야 한다.
Scanner sc = new Scanner(System.in); // Scanner 객체 생성

Scanner 객체의 이름은 일반적으로 in, input, sc, scan 이 많이 쓰인다.

메소드를 이용하여 입력 받기

위에서 생성한 객체를 이용해 메소드를 호출하여 키보드로부터 입력을 받을 수 있다.

sc.nextByte();    // 입력을 byte 타입으로 리턴
sc.nextShort();   // 입력을 short 타입으로 리턴
sc.nextInt();     // 입력을 int 타입으로 리턴
sc.nextLong();    // 입력을 long 타입으로 리턴

sc.nextFloat();   // 입력을 float 타입으로 리턴
sc.nextDouble();  // 입력을 double 타입으로 리턴

sc.nextBoolean(); // 입력을 boolean 타입으로 리턴

sc.next();        // 입력을 String 타입으로 리턴 (공백을 기준으로 단어를 읽음)
sc.nextLine();    // 입력을 byte 타입으로 리턴   (개행을 기준으로 단어를 읽음)

위의 메소드들을 이용해 입력받고자 하는 타입으로 값을 얻을 수 있다.

예제

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
    	System.out.println("삼각형의 밑변과 높이의 길이를 빈칸으로 구분하여 입력해주세요.");
        
        Scanner sc = new Scanner(System.in);
        
        int width = sc.nextInt();
        int height = sc.nextInt();
        
        System.out.println("삼각형의 넓이는 " + (width * height / 2) + "입니다.");
    }
]

Scanner를 사용하여 삼각형의 밑변과 높이를 입력받아 넓이를 구하는 예제이다.

연습

백준 10869번 : 사칙연산 문제이다.

정답 보기
import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);

      int A = sc.nextInt();
      int B = sc.nextInt();

      System.out.println(A + B);
      System.out.println(A - B);
      System.out.println(A * B);
      System.out.println(A / B);
      System.out.println(A % B);
  }
}
profile
자바 스프링 공부하는 정리 블로그!

0개의 댓글