목차
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 |