화면에서 입력받기 - Scanner
화면으로 통해서 값을 입력받는 Scanner에 대해서 알아본다.
▶Scanner란?
Scanner 클래스는 화면으로부터 데이터를 입력받는 기능을 제공하는 클래스이다.
클래스는 어떤 기능을 제공하는 것이다.
▶Scanner 클래스의 사용
① import문 추가
import java.util.*;
Scanner 클래스를 사용하려면 먼저 import문을 추가해야한다. import문은 사용하려는 클래스가 어디에 속해있는지 어떤 패키지에 속해있는지 알려주기 위한 것이다. import문이 필요한 클래스가있고 필요하지 않은 클래스가 있다. 스캐너 클래스를 사용하기 전에 import java.util.*;을 추가해주어야 한다.
② Scanner 객체의 생성
Scanner scanner = new Scanner(System.in);
다음으로 Scanner 클래스의 객체를 생성해주어야 한다. 클래스도 객체를 생성해야만 사용할 수 있는게 있고 생성하지 않아도 되는게 있는데 println, printf 같은 메서드들은 객체를 생성하지 않고도 사용이 가능하다. 반면에 Scanner 클래스는 꼭 객체를 생성해야한다. 생성문은 Scanner scanner = new Scanner(System.in);이다. System.in은 화면 입력을 의미하고 Scanner 클래스는 화면뿐만 아니라 파일로 부터도 입력을 받을 수 있다.
③ Scanner 객체를 사용
int num = scanner.nextInt(); // 화면에서 입력받은 정수를 num에 저장
생성한 Scanner 객체를 사용하면 화면으로부터 값을 입력 받을 수 있다. int num = scanner.nextInt(); 문장은 화면에서 입력받은 정수를 변수 num에 저장하는 것이다. 정수가 아니라 실수를 입력받을때는 어떻게 해야할까? 실수를 입력받을 때는 nextInt()가 아닌 nextFloat()로 써주면 된다.
String input = scanner.nextLine(); // 화면에서 입력받은 내용을 input에 저장
nextLine()에서는 화면에서 입력한 내용을 줄 단위. 즉, 한 행을 읽어서 문자열로 변환한다. 그래서 저장할 변수의 타입이 String이다.
int num = Integer.parseInt(input); // 문자열(input)을 숫자(num)로 변환
위 문장은 문자열을 숫자로 변환하는 문장이다. input이라는 문자열을 숫자로 즉, 정수로 변환해서 변수 num에 저장한다.
숫자를 문자열로 변환할때는 숫자에 " "을 더해주면 된다(숫자+" "). 반대로 문자열을 숫자로 바꿀때는 Integer.parseInt() 메서드를 사용하면 된다.
화면에서 라인단위로 입력받는 방법과 문자열을 숫자로 변환하기 위한 방법을 설명하기 위해 위 두문장(String input = scanner.nextLine(); , int num = Integer.parseInt(input);)을 썼지만 사실 int num = scanner.nextInt(); 이 한줄로 간단하게 써도 된다. 다른방법을 설명하기 위해 두 문장을 썼다. 한 라인에 여러가지 값을 입력받는 경우 nextLine()으로 라인 전체를 읽어온 다음에 값을 나누어 처리해야할때가 있다. 그럴 때 위 두 문장을 잘 응용하면 된다. 단순히 숫자 하나하나를 입력받을 때는 첫번째 문장을 사용하면 된다.
참고자료:
'Language > Java' 카테고리의 다른 글
[Java] 타입간의 변환방법 (0) | 2023.01.29 |
---|---|
[Java] 정수형의 오버플로우 (0) | 2023.01.25 |
[Java] printf를 이용한 출력 (0) | 2023.01.24 |
[Java] 변수 기본형의 종류와 범위 (0) | 2023.01.19 |
[Java] 기본형과 참조형 (0) | 2023.01.17 |
댓글