Java - 키보드 입력

jsbak·2025년 4월 14일
1

Java

목록 보기
4/4

데이터 키보드 입력

  • Scanner 를 사용하여 입력데이터를 입력 받습니다.

Scanner 클래스란?

Scanner 는 Java에서 사용자로부터 입력을 받기 위한 가장 일반적인 클래스입니다. java.util 패키지에 포함되어 있으며, 키보드 입력뿐만 아니라 파일, 문자열 등 다양한 소스로부터 데이터를 읽어올 수 있습니다.

기본 사용 방법

Scanner scanner = new Scanner(System.in);
  • scanner 변수 선언: Scanner scanner
  • Scanner 객체 생성: new Scanner(System.in);
  • 생성된 Scanner를 변수에 대입 Scanner scanner = new Scanner(System.in);

주요 메서드

Scanner 클래스는 다양한 데이터 타입을 읽을 수 있는 메서드를 제공합니다:

nextLine(): 한 줄 전체를 문자열로 읽습니다.
next(): 공백을 기준으로 다음 토큰을 문자열로 읽습니다.
nextInt(): 다음 토큰을 int로 읽습니다.
nextDouble(): 다음 토큰을 double로 읽습니다.
nextBoolean(): 다음 토큰을 boolean으로 읽습니다.
hasNext(): 읽을 토큰이 더 있는지 확인합니다.
hasNextInt(), hasNextDouble() 등: 다음 토큰이 특정 타입인지 확인합니다.

기본 사용 예시

import java.util.Scanner;

public class ScannerPractical {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 정수 입력 받기
        System.out.print("나이를 입력하세요: ");
        int age = scanner.nextInt();
        
        // nextInt() 후에 남은 줄바꿈 문자 처리
        scanner.nextLine();
        
        // 문자열 입력 받기
        System.out.print("직업을 입력하세요: ");
        String job = scanner.nextLine();
        
        // 실수 입력 받기
        System.out.print("키를 입력하세요(m): ");
        double height = scanner.nextDouble();
        
        System.out.println("입력 정보: " + age + "세, " + job + ", 키 " + height + "m");
        
        scanner.close();
    }
}

주의사항

  • 입력 버퍼 문제: nextInt(), nextDouble() 등의 메서드는 줄바꿈 문자를 버퍼에 남겨둡니다. 이후 nextLine()을 호출하면 이 줄바꿈 문자를 바로 읽어버려 원하는 입력을 받지 못할 수 있습니다. 위 예제처럼 scanner.nextLine()을 추가로 호출하여 버퍼를 비워주세요.
  • 예외 처리: 사용자가 예상과 다른 형식의 데이터를 입력할 경우 InputMismatchException이 발생할 수 있습니다. 실제 프로덕션 코드에서는 이를 적절히 처리해야 합니다.
  • 리소스 관리: Scanner 사용이 끝나면 close() 메서드로 자원을 해제해주는 것이 좋습니다. 하지만 System.in을 닫으면 프로그램 전체에서 표준 입력을 더 이상 사용할 수 없게 되므로 주의하세요.
profile
끄적끄적 쓰는곳

0개의 댓글