[Java 기초] 8. Scanner 클래스 - 데이터를 입력해보자!

Kyung Jae, Cheong·2024년 8월 12일
1
post-thumbnail
  • 최대한 기초가 거의 없는 분들의 입장에서 정리해본 내용이므로, 어려운 개념들은 가급적 포함시키지 않거나 최대한 간단하게만 표현하였습니다.
  • Java 세팅 및 실습은 Windows 환경에서 IntelliJ를 통해 진행되었습니다.
  • (참고) IntelliJ 코드 실행 단축키
    • Windows, Linux : Shift+F10
    • MacOS : Ctrl+R

8. Scanner 클래스

  • 자바에 기본적으로 설치 되어있는 Scanner 클래스는 표준 입력, 파일, 문자열 등 다양한 입력 소스에서 데이터를 읽어오는 데 사용됩니다.
    • 주로 콘솔에서 사용자의 입력을 받아 처리하는 데 자주 사용됩니다.

8-1. Scanner 클래스의 주요 기능

  • 콘솔 입력 처리: 사용자가 콘솔에 입력한 데이터를 다양한 형식으로 읽어올 수 있습니다.
  • 파일 입력 처리: 파일에서 데이터를 읽어올 수 있습니다.
  • 토큰화: 공백, 구분자를 기준으로 문자열을 분리하여 읽어올 수 있습니다.

8-2. Scanner 클래스 사용 방법

  • Scanner 클래스를 사용하기 위해서는 java.util.Scanner 패키지를 import해야 합니다.

콘솔 입력 예시

  • 프로그램 실행시 콘솔창에서 입력을 받는 코드의 예시입니다.
    • 출력시 System.out을 쓴것 처럼 System.in을 쓰는 것이 특징입니다.
import java.util.Scanner;

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

        System.out.print("Enter your name: ");
        String name = scanner.nextLine(); // 문자열 입력

        System.out.print("Enter your age: ");
        int age = scanner.nextInt(); // 정수 입력

        System.out.println("Name: " + name);
        System.out.println("Age: " + age);

        scanner.close(); // 스캐너 닫기
    }
}

파일 입력 예시

  • 텍스트 파일(.txt)에서 한줄씩 읽고 출력하는 코드의 예시입니다.
    • io.File과 같은 추가적인 import가 필요합니다.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FileScannerExample {
    public static void main(String[] args) {
        try {
            File file = new File("input.txt");
            Scanner scanner = new Scanner(file);

            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                System.out.println(line);
            }

            scanner.close();
        } catch (FileNotFoundException e) {
            System.out.println("File not found.");
        }
    }
}
  • try-catch문에 관해선 추후에 다룰 예정입니다.

8-3. Scanner 클래스의 주요 메서드

  • nextLine(): 한 줄을 문자열로 읽습니다.
  • nextInt(): 정수를 읽습니다.
  • nextDouble(): 실수를 읽습니다.
  • next(): 공백을 기준으로 한 단어를 읽습니다.
  • hasNextLine(): 다음 줄이 있는지 확인합니다.
  • hasNextInt(): 다음 입력이 정수인지 확인합니다.

주의 사항

  • 입력 형식: 입력 형식이 기대와 다를 경우 예외가 발생할 수 있습니다.
    • 예를 들어, nextInt()를 호출했을 때 사용자가 숫자가 아닌 값을 입력하면 InputMismatchException이 발생합니다.
  • 리소스(자원) 해제: 입력이 끝난 후에는 scanner.close()를 호출하여 리소스를 해제하는 것이 좋습니다.

마무리

  • 본 포스팅에서는 자바에서 다양한 입력 소스를 처리하는 데 사용되는 Scanner 클래스에 대해서 정리해보았습니다.
  • 다음 포스팅에서는 자바의 메서드(Method)를 알아보고 변수 사용 범위인 스코프(Scope)를 알아보는 시간을 가져보려합니다!
profile
일 때문에 포스팅은 잠시 쉬어요 ㅠ 바쁘다 바빠 모두들 화이팅! // Machine Learning (AI) Engineer & BackEnd Engineer (Entry)

0개의 댓글