Please Enable JavaScript!
Gon[ Enable JavaScript ]

자바(Java) Scanner 클래스 사용하기

자바(JAVA)
반응형

“Scanner”는 Java에서 사용자로부터 표준 입력이나 파일 등 다양한 소스로부터 데이터를 읽을 때 사용되는 클래스입니다. 주로 키보드로부터 데이터를 입력받을 때 많이 사용되며, 간단한 구문으로 입력된 데이터를 읽고 처리할 수 있도록 도와줍니다.

 


 

 

Scanner 클래스의 특징

 

l  다양한 입력 소스 지원: 키보드, 파일, 문자열 등 다양한 입력 소스로부터 데이터를 읽어올 수 있습니다.

l  편리한 입력 처리: 문자열, 정수, 실수 등의 다양한 데이터 타입을 읽어올 수 있습니다.

l  공백 문자를 기준으로 토큰 분리: 공백 문자(스페이스, , 개행 등)를 기준으로 입력을 토큰으로 분리 처리합니다.

l  쉬운 사용법: 간단하고 직관적인 메서드들을 제공하여 사용자 입력을 쉽게 처리할 수 있습니다.

l  오류 처리: 입력 소스에서 오류가 발생할 경우 예외를 발생시켜 오류를 처리할 수 있습니다.

 

 

◎ 주요 함수

 

Java“Scanner” 클래스는 키보드나 다른 입력 소스에서 사용자의 입력을 읽어오는 데 사용됩니다. 이 클래스를 사용하여 사용자로부터 텍스트, 숫자 등 다양한 종류의 입력을 처리할 수 있습니다. “Scanner” 클래스의 주요 메서드와 사용법은 다음과 같습니다.

 

함수 사용에서 주의할 점은 “nextInt()”, “nextDouble()” 등의 메서드를 사용할 때 입력 소스에서 읽어온 값이 해당 타입으로 변환 가능한지를 확인해야 합니다. nextInt() 에서 숫자 변환이 불가능한 문자를 입력할 경우 예외가 발생할 수 있습니다. 또한, 입력 소스에 따라 예상치 못한 입력을 처리할 수 있는 방어 코드도 함께 작성하는 것이 좋습니다.

 

(1) 생성자: “Scanner” 객체를 생성할 때 사용합니다. 다양한 입력 소스에 대한 파라미터를 전달할 수 있습니다. 예를 들어, 키보드로부터 입력을 읽을 때는 “System.in”을 전달합니다. 

Scanner scanner = new Scanner(System.in);

 

 

(2) next(): 다음 토큰을 문자열로 읽어옵니다. 공백 문자를 기준으로 문자열을 구분합니다. 

String str = scanner.next();

 

 

(3) nextInt(): 다음 토큰을 정수로 읽어옵니다. 

int num = scanner.nextInt();

 

 

(4) nextDouble(): 다음 토큰을 double 형으로 읽어옵니다. 

double d = scanner.nextDouble();

 

 

(5) nextLine(): 한 줄 전체를 문자열로 읽어옵니다. 개행 문자까지 읽어들입니다. 

String line = scanner.nextLine();

 

 

(6) hasNext(): 입력 소스에 다음 토큰이 있는지 여부를 확인합니다. “boolean” 값을 반환합니다. 

boolean hasNext = scanner.hasNext();

 

 

(7) hasNextInt(): 입력 소스에 다음 토큰이 정수인지 여부를 확인합니다. “boolean” 값을 반환합니다. 

boolean hasNextInt = scanner.hasNextInt();

 

 

(8) close(): “Scanner” 객체를 닫습니다. 사용이 끝난 후에는 항상 닫아주는 것이 좋습니다. 

scanner.close();

 

 

◎ 예제 1

 

예제에서는 사용자로부터 정수를 입력받아서 변수에 저장하고, 그 값을 출력하는 간단한 프로그램입니다. 정수를 입력해야 정상적으로 동작합니다. 

import java.util.Scanner;
 
public class ScannerExample1 {
    public static void main(String[] args) {
        // 스캐너 객체 생성
        Scanner scanner = new Scanner(System.in);
 
        // 사용자로부터 정수 입력 받기
        System.out.print("정수를 입력하세요: ");
        int userInput = scanner.nextInt();
 
        // 입력 받은 정수 출력
        System.out.println("입력한 정수: " + userInput);
 
        // 스캐너 닫기
        scanner.close();
    }
}
 
[출력]
정수를 입력하세요: 42
입력한 정수: 42

 

 

◎ 예제 2

 

예제에서는 사용자로부터 문자열을 입력받아서 변수에 저장하고, 그 값을 출력하는 프로그램입니다. “nextLine()” 메서드를 사용하여 공백을 포함한 전체 라인을 읽습니다.

import java.util.Scanner;

public class ScannerExample2 {
    public static void main(String[] args) {
        // 스캐너 객체 생성
        Scanner scanner = new Scanner(System.in);

        // 사용자로부터 문자열 입력 받기
        System.out.print("이름을 입력하세요: ");
        String userName = scanner.nextLine();

        // 입력 받은 문자열 출력
        System.out.println("입력한 이름: " + userName);

        // 스캐너 닫기
        scanner.close();
    }
}

[출력]
이름을 입력하세요: John Doe
입력한 이름: John Doe
반응형
Posted by 녹두장군1
,