키 입력 (System.in) (Scanner)

System.in

키 입력 받는 방법

System.in

출력은 System.out을 사용하였지만 입력은 System.in을 사용 System.in을 통해 사용자에게서 키를 입력받을 수 있다. 하지만 받은 정보를 문자나 숫자로 변환해주기 위해서는 Scanner 클래스를 사용해줘야 한다.

Scanner

  • Scanner 객체 생성하기
    Scanner sc = new Scanner(System.in);
    

import 문

Scanner를 사용하기 위해서는 자바에게 알려줘야 하는데 이때, import 문을 적어줘야 한다.

import java.util.Scanner;

프로그램 맨 윗줄에 작성해주기

import java.util.Scanner;

public class Hello {

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

	}

}

키 입력받기

Scanner 클래스는 사용자가 입력한 값을 공백 문자 기준으로 (토큰 단위) 읽는다. ex) “Hello World”를 입력한다면 -> “Hello”, “World” 토큰 단위로 읽는다.

Scanner의 메소드

메소드기능
nextLine()한줄 전체 읽기(공백 있는 문자열)
next()String 읽기(공백 있는 문자열 읽기 X)
nextBoolean()boolean 타입으로 읽기
nextLong()long 타입으로 읽기
nextInt()int 타입으로 읽기
nextDouble()double 타입으로 읽기
nextFloat()float 타입으로 읽기

Scanner 메소드를 이용하여 사용자가 입력한 값을 읽어야 한다.

Scanner 닫기

sc.close(); // scanner 객체 사용 종료 (위에서 입력한 sc 값)

닫는 코드가 없어도 실행 결과에는 문제가 생기지 않는다.

예시 코드

package post1;

import java.util.Scanner;

public class Hello {

	public static void main(String[] args) {
		System.out.println("이름, 나이, 도시를 빈칸으로 분리해서 입력해주세요.");
		Scanner sc = new Scanner(System.in);

		//이름을 입력받을 부분 (String 타입)
		String name = sc.next();
		System.out.println("이름은 "+name+"입니다.");

		//나이를 입력받을 부분 (int 타입)
		int age = sc.nextInt();
		System.out.println("나이는 "+age+"입니다.");

		//도시를 입력받을 부분 (String 타입)
		String city = sc.next();
		System.out.println("사는 곳은 "+city+"입니다.");
	}
}

출력 결과

이름, 나이, 도시를 빈칸으로 분리해서 입력해주세요.
가나다 19 서울
> 이름은 가나다입니다.
> 나이는 19입니다.
> 사는 곳은 서울입니다.

출처

  • (황기태, 김효수, ⌜명품 JAVA Programming⌟, 생능출판, 2018)을 학습하고 개인 학습용으로 정리한 내용입니다.

© 2021. All rights reserved.

Powered by __YJ__