[JAVA] Scanner 클래스

안녕하세요, 해을입니다🦖

이번 글에서는 자바의 Scanner 클래스에 대해 알아보겠습니다!

💡Scanner 클래스

Scanner 클래스는 사용자로부터 입력을 받기 위한 입력 스트림입니다.

🥨 특징

  • 패키지 포함 필수
    image
    Scanner는 java.util 패키지에 있으며 사용 시, 패키지를 포함해야 합니다.

  • 다양한 메서드 image
    메서드를 사용하여 String, int, boolean 등 다양한 데이터 타입을 입력받을 수 있습니다.

  • 토큰 단위로 입력을 구분
    공백과 개행(‘ ‘, ‘\t’, ‘\n’ 등)을 기준으로 입력을 읽습니다.

🥨 사용해보기

import java.util.Scanner; // 패키지 포함

public class test {
 public static void main(String[] args) {
  Scanner stdIn = new Scanner(System.in); // 객체 생성
  
  // 타입별 입력 및 리턴
  int x = stdIn.nextInt();
   
  String str1 = stdIn.next(); // 공백을 기준으로 한 단어를 읽음
  String str2 = stdIn.nextLine(); // 개행을 기준으로 한 줄을 읽음
  
  System.out.println(x + std1 + std2);
 }
}
  1. 패키지 포함
      import java.util.Scanner; // 패키지 포함
    

    Scanner 클래스는 사용 시에 프로그램 상단에서 패키지를 포함시켜야 합니다.

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

    키보드 값을 입력받는 메서드를 사용하기 전에 객체를 먼저 생성해야 합니다.

    • System.in : 키보드와 연결된 표준 입력 스트림
    • stdIn : 표준 입력 스트림에서 입력 값을 꺼내는 역할
  3. 입력 받기
      // int 형
      int x = stdIn.nextInt();
      // String 형
      String str1 = stdIn.next();
      String str2 = stdIn.nextLine();
    

    [ next~ ] 형식의 다양한 입력 메서드를 사용하여 입력을 받습니다.

🥨 주의사항

next()와 nextLine()은 같은 String 형을 읽는 메서드지만 읽는 방식에서 차이가 있습니다.

image

  • next() : 토큰을 기준으로 한 단어를 읽음
  • nextLine() : 엔터를 기준으로 한 줄을 읽음

image

또 다른 예시를 살펴보면 위 경우는 next()가 공백 전까지 읽고난 후, 공백부터 nextLine()이 읽기 시작하므로 사진처럼 출력되는 것입니다.

이렇게 2가지 메서드를 같이 쓰는 경우, 위와 같은 상황이 일어날 수 있기 때문에 주의해서 사용해야 합니다.


자! 이렇게 해서 Java의 Scanner 클래스를 살펴봤습니다.

쉬운 개념이지만 충분히 연습해야 실수 없이 사용할 수 있겠죠?😉

글에서 소개한 주요 메서드 및 더욱 자세한 내용은 공식 문서에서 확인 가능합니다.


오류 및 오타 지적, 질문, 인사 등 무엇이든 언제나 환영입니다!

읽어주셔서 감사합니다.

끝!🦕

👍 참고


© 2022. Haeeul All rights reserved.

🐾해을의 개발자국🐾

Powered by Hydejack v9.1.5