Java

화면으로부터 입력받기

1space 2025. 6. 17. 01:44

자바의 정석[기초편]으로 공부한 내용을 정리한 글입니다.

 

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