자바의 정석[기초편]으로 공부한 내용을 정리한 글입니다.
import java.util.Scanner;
- 이 문장은 Scanner라는 도구(클래스)를 사용하기 위해 미리 가져오는(import) 코드입니다.
- Scanner는 자바에서 사용자로부터 입력을 받을 때 사용하는 도구입니다.
- java.util은 Scanner가 들어 있는 자바의 기본 도구 상자(package) 중 하나입니다.
📌 Scanner 없이 키보드 입력을 받을 수는 없습니다. 그래서 꼭 import해야 합니다.
Scanner scanner = new Scanner(System.in);
Scanner | 클래스 이름 (입력받는 도구) |
scanner | 우리가 만든 Scanner 도구의 이름 (변수 이름) |
new Scanner(...) | Scanner 도구를 실제로 만드는 코드 (객체 생성) |
System.in | 키보드 입력을 받는 통로를 의미 |
즉, 이 한 줄은:
“키보드로부터 입력을 받을 수 있는 Scanner 도구를 만든다”는 뜻입니다.
String input = scanner.nextLine();
- 이 코드는 사용자에게 한 줄을 입력 받는 코드입니다.
- 사용자가 입력을 마치고 Enter 키를 누르면
- 입력된 한 줄 전체가 문자열(String) 형태로 input 변수에 저장됩니다.
예시:
사용자 입력: Hello World → input에는 "Hello World"가 저장됨
int num = Integer.parseInt(input);
- input은 "123"처럼 문자열이니까 숫자 계산에 직접 사용할 수 없습니다.
- 그래서 Integer.parseInt()라는 문자열을 숫자로 바꾸는 도구를 사용합니다.
- "123" → 123 (정수로 변환)
이 과정을 거치면 num에는 진짜 숫자 123이 저장됩니다.
nextInt(), nextFloat() 등의 차이점
- scanner.nextInt()는 입력과 동시에 숫자로 받는 방법입니다.
- "123"처럼 문자열로 받고 parseInt()로 변환하는 단계 없이 바로 숫자로 받음
- 하지만 이 방식은 공백, 문자, 특수문자가 섞이면 바로 오류(Exception)가 발생합니다.
예시:
int num = scanner.nextInt();
입력: 123 → OK
입력: 123abc → ❌ 오류 발생
입력: 123 456 → ❌ 오류 발생
그래서:
- 문자와 숫자가 섞일 수 있는 경우는 nextLine()으로 전체 입력받고
- 원하는 데이터만 골라서 가공(파싱) 하는 것이 더 안전합니다.
'Java' 카테고리의 다른 글
임의의 정수 만들기 (0) | 2025.06.17 |
---|---|
문자열의 비교 (0) | 2025.06.17 |
타입 간의 변환방법 (0) | 2025.06.17 |
기본형과 참조형 (0) | 2025.06.17 |
상수와 리터럴 (0) | 2025.06.17 |