“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
'자바(JAVA)' 카테고리의 다른 글
자바(Java) 다형성, 오버라이딩(Overriding), 오버로딩(Overloading) (3) | 2024.11.09 |
---|---|
자바(Java) for 문 이용해서 피라미드, 역 피라미드 만드는 방법 (2) | 2024.08.04 |
자바(Java) 실행대기 함수 Sleep 와 Wait 함수 차이와 구현 방법 (0) | 2024.04.08 |
깃허브(GitHub) 소스 업데이트 로그인 Token 생성하기 (0) | 2024.04.05 |
자바(Java) do-while 반복문 사용하기 (0) | 2024.03.29 |
자바(Java) while 반복문 사용하기 (0) | 2024.03.27 |
자바(Java) 버전 확인하고 최신으로 업데이트 하는 방법 (1) | 2024.03.26 |
자바(Java) for 문 사용하기 (1) | 2024.03.26 |