'
본문 바로가기
study/Programming

[JAVA 기초] Java API - Scanner 클래스

by meowdule 2025. 4. 27.

 

1. Scanner 클래스란?


📌 Scanner 클래스

Java에서 사용자로부터 입력을 받기 위해 사용하는 대표적인 클래스가 바로 Scanner 클래스입니다.

import java.util.Scanner;

 

 


📌 주요 특징

 

  • java.util 패키지에 포함 (import 필요)
  • 키보드 입력, 파일 입력 등 다양한 입력에 사용 가능
  • 입력을 토큰 단위로 처리 (공백·개행 기준으로 나눔)
  • 여러 타입의 값을 받을 수 있음 (String, int, double, boolean, ...)

 

 

 

 

 

 

 

 

2. 입력 메서드

 

import java.util.Scanner;

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

        // 문자열 입력 (한 단어)
        System.out.print("이름을 입력하세요: ");
        String name = sc.next(); // 공백 전까지
        System.out.println("입력된 이름: " + name);

        // 정수 입력
        System.out.print("나이를 입력하세요: ");
        int age = sc.nextInt();
        System.out.println("입력된 나이: " + age);

        // 실수 입력
        System.out.print("키를 입력하세요: ");
        double height = sc.nextDouble();
        System.out.println("입력된 키: " + height);
    }
}

 

 

 

 

 

 

 

3. 문자(char) 입력 방법

 

Scanner에는 nextChar()가 없습니다.
따라서 문자열로 입력 받은 뒤, 그 중 한 글자만 추출해야 합니다.

 

  • next() → 문자열을 입력받음
  • charAt(0) → 첫 글자만 가져옴
System.out.print("성별을 입력하세요 (M/F): ");
char gender = sc.next().charAt(0);
System.out.println("입력된 성별: " + gender);

 

 

 

 

 

 

 

 

4. next() vs nextLine() 차이 실험

 

메서드 입력 단위 공백 포함 여부 개행 처리
next() 공백 전까지 ❌ 포함하지 않음 다음 줄로 이동 안함
nextLine() 한 줄 전체 ⭕ 포함 개행 문자 포함하여 버퍼 비움

 

System.out.print("next() 입력: ");
String tokenInput = sc.next();  // 공백 전까지만
System.out.println("결과: " + tokenInput);

sc.nextLine(); // 버퍼 비우기

System.out.print("nextLine() 입력: ");
String lineInput = sc.nextLine();  // 전체 한 줄
System.out.println("결과: " + lineInput);

 

 

 

 

 

 

 

 

 

5. 입력 버퍼 관련 주의사항

 

System.out.print("나이: ");
int age = sc.nextInt();

System.out.print("한 줄 입력: ");
String msg = sc.nextLine(); // ← 바로 넘어감 (입력 못 받음)


📌 원인

  • nextInt()는 숫자만 읽고, 개행문자(\n)는 남겨둡니다.
  • nextLine()은 개행문자만 읽고 끝나버림 → 값 입력 못 받고 바로 종료

 

 

 

 

 

 

마무리
다음 게시글에서는 제어문 중 조건문에 대해 학습하겠습니다.

 

'study > Programming' 카테고리의 다른 글

[JAVA 기초] 제어문 - 반복문  (0) 2025.04.29
[JAVA 기초] 제어문 - 조건문  (2) 2025.04.28
[JAVA 기초] Java API - Math 클래스  (1) 2025.04.26
[JAVA 기초] API 개념 중심  (1) 2025.04.25
[JAVA 기초] import 문법  (1) 2025.04.24