티스토리 뷰
Scanner 클래스란?
Scanner 클래스는 콘솔에서 입력을 받기 위해 사용되며, 각각의 데이터 타입으로 반환한다.
java.util 패키지를 사용하기 때문에 해당 패키지를 import 통해 호출해야 사용할 수 있다.
Scanner 를 사용하기 위해서는 클래스의 객체를 생성해야 하며, Scanner 클래스 문서 안에 있는 메소드 중 자료 타입에 맞게 하나를 사용해야 하며, Scanner 메소드는 아래와 같다.
Scanner 메소드 종류
Method | Description |
nextBoolean() | 데이터 타입이 논리형으로 입력된 값을 읽음 |
nextByte() | 데이터 타입이 byte 으로 입력된 값을 읽음 |
nextShort() | 데이터 타입이 정수형 short 로 입력된 값을 읽음 |
nextInt() | 데이터 타입이 정수형 int 로 입력된 값을 읽음 |
nextLong() | 데이터 타입이 정수형 long 으로 입력된 값을 읽음 |
nextFloat() | 데이터 타입이 실수형 float 으로 입력된 값을 읽음 |
nextDouble() | 데이터 타입이 실수형 double 로 입력된 값을 읽음 |
next() | 데이터 타입이 문자형으로 입력된 값을 읽음 - 공백을 기준으로 문장 한 개만 읽음 |
nextLine() | 데이터 타입이 문자형으로 입력된 값을 읽음 - 공백과 줄 바꿈, 구분 기호를 포함한 전체 입력 줄을 읽음 |
💡 문자형을 제외한 나머지는 자료 타입의 이름이 next 뒤에 붙지만, 문자형만 예외로 next 뒤에 String() 대신 Line() 이 붙는다.
💡 문자 데이터 타입 char 형으로 받는 메소드는 없다. char 형은 String 으로 받은 후 charAt() 메소드로 문자를 반환해야 한다.
Scanner 클래스 사용 방법
- java.util 패키지를 import 한다.
- Scanner 객체를 생성하고 System.in 이라는 입력 스트림을 연다.
- 데이터 타입에 맞는 메소드를 사용하여 변수를 선언한다.
- Scanner 를 닫아줌으로써 종료한다.
Close 메소드
Scanner 클래스에는 열려 있는 Scanner 를 닫아줄 수 있는 Close 메소드가 있다.
Close 메소드를 사용하지 않더라도 Closable 인터페이스가 호출되어 스트림을 닫아주지만 사용하지 않는 입력 또는 출력 스트림이 열리지 않도록 Close 메소드를 사용하여 Scanner 를 닫아주는 것이 좋다.
Scanner Class Example ( String, Integer, Double 데이터 타입)
import java.util.Scanner; // package import
class Main {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in); // Scanner Object 생성
System.out.println("Enter name, age and salary:");
// String input
String name = myObj.nextLine();
// Numerical input
int age = myObj.nextInt();
double salary = myObj.nextDouble();
// Output input by user
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Salary: " + salary);
myObj.close();
}
}
💡 만약 정수 데이터 타입의 입력 란에 문자형을 입력하는 등 데이터 타입을 잘못 입력하는 경우 "InputMismatchException" 와 같이 예외/에러 메시지가 발생할 수 있다.
'Java' 카테고리의 다른 글
[Java] Packages Tutorial (패키지 튜토리얼) (0) | 2021.10.29 |
---|---|
[Java] Ternary Operator (삼항 연산자) (0) | 2021.10.29 |
[Java] Switch-Case Statement (0) | 2021.10.29 |