Java 화면에서 입력받기(Scanner)

2021. 4. 29. 18:30Java

지금까지는 화면에 출력만 해왔는데, 이제 화면으로부터 입력받는 방법에 대해서 배워보자. 자바에서 화면으로 부터 입력받는 방법은 여러가지가 있으며, 점점 간단하고 편리한 방향으로 발전해 왔다. 최신 방법은 JDK1.6추가된 console클래스를 이용하는 것인데, 이 클래스는 이클립스와 같은 IDE에서 잘 동작하지 않으므로, 이와 유사한 Scanner클래스를 이용해서 화면으로부터 입력받는 방법을 배워보자

 

화면으로부터 입력받는 방법은 아직 배우지 않은 것들을 알아야하는데도 불구하고 본인이 직접 입력을 하면 자칫 지루해 질 수 있는 내용들이 좀더 재미있어지지 않을 까 하는 생각에서 미리 소개하게 되었다. 나중에 자세히 배울 테니 지금은 히해하기 보다는 가져다 사용하는 정도로만 활용해주었으면 한다.


Scanner클래스의 객체를 생성하기

Scanner scan = new Scanner(System.in); // Scanner클래스의 객체를 생성

그리고 nextLine()이라는 메서드를 호출하면, 입력대기 상태에 있다가 입력을 마치고 엔터키를 누르면 입력한 내용이 문자열로 반환된다.

String input = scanner.nextLine(); // 입력받은 내용을 input에 저장
int num = Integer.parseInt(input); // 입력받은 내용을 input타입의 값으로 반환

만일 입력받은 문자열을 숫자로 반환하려면, Integer.parseInt()라는 메서드를 이용해야한다. 이 메서드는 문자열을 int타입의 정수로 변환한다.

사실 Scanner클래스에는 nextInt()나 nextFloat()와 같이 변환없이 숫자로 바로 입력받을 수 있는 메서드들이 있고, 이 메서드를 사용하면 문자열을 숫자로 변환하는 수고는 하지 않아도 된다.

int num = scan.nextInt(); // 정수를 입력받아 변수 num에 저장 

그러나 이 메서드들은 화면에서 연속적으로 값을 입력받아서 사용하기에 까다롭다. 차라리 모든 값을 nextLine()으로 입력받아서 적절히 변환하는 것이 낫다.

import java.util.Scanner;

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

        System.out.print("두자리 정수를 하나 입력해주세요.>");
        String input = scan.nextLine();
        int num = Integer.parseInt(input);

        System.out.println("입력내용: "+input);
        System.out.printf("num = %d\n", num);
        scan.close();
    }
}
/* 출력결과
두자리 정수를 하나 입력해주세요.>32
입력내용: 32
num = 32 
*/

'Java' 카테고리의 다른 글

Java 진법 1  (0) 2021.05.25
Java 상수 2  (0) 2021.05.15
Java 상수 1  (0) 2021.04.30
Java 변수의 타입  (0) 2021.04.28
Java 변수  (0) 2021.04.27