화면에서 입력받기
화면에서 입력받기 - Scanner
import java.util.* // Scanner클래스를 사용하기 위해 import
Scanner scanner = new Scanner(System.in); // Scanner 클래스의 객체를 생성
nextLine()이나 nextInt(), nextFloat()를 이용하기
String input = scanner.nextLine(); // 입력받은 내용을 input에 저장
int num = Integer.parseInt(input); // 입력받은 내용을 int타입의 값으로 변환
// float의 경우 Float.parseFloat() 사용
int num2 = scanner.nextInt(); // 정수를 입력받아 변수 num에 저장
- 예제
import java.util.*; // Scanner를 사용하기 위해 추가
class ScannerEx {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.printf("두 자리 정수를 하나 입력해주세요.>");
String input = scanner.nextLine();
int num = Integer.parseInt(input); // 입력받은 문자열을 숫자로 변환
System.out.println("입력내용:" + input);
System.out.printf("num=%d%n", num);
}
}
실행 결과
두 자리 정수를 하나 입력해주세요.>23
입력내용:23
num=23
- Integer.parseInt()에서 숫자가 아닌 문자, 기호, 공백을 입력받지 않도록 주의하자
화면에서 입력받기 - BufferedReader
// 1. import
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
...
public static void main(String[] args) throws IOException {
// 2. BufferedReader 객체 생성
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 3. readLine() 메소드를 통해 문자열 저장
String st = br.readLine();
// 4. 문자열 parsing
int a = Integer.parseInt(br.readLine());
int b = Integer.parseInt(st);
}
Scanner vs BufferedReader
Scanner는 키보드의 키를 누르는 즉시 바로 전달 됨(1KB)
BufferedReader는 입력 받은 값을 버퍼(8192 char)에 담아두었다가 한 번에 프로그램에 전송한다
- 따라서 대량의 데이터를 처리할 때 입출력의 호출 횟수가 줄어 빠르고 효율적이게 됨
Scanner는 nextInt(), nextFloat(), 정규표현식 등을 이용해 데이터를 구분지어 읽어들일 수 있다.
- 따라서 작은 양의 데이터를 다룰 때 직관적이고 매우 편리함.
BufferedReader는 주로 문자열로 데이터를 읽어 필요한 경우 다른 타입으로 변환해야 함.
BufferedReader가 Scanner보다 멀티스레드 환경에서 안전함
결국 상황에 따라 Scanner와 Buffered Reader를 적절히 사용하는게 좋다
(스트림에 관한 내용은 추후 다시 다룰 예정)
참조) Java의 정석 3rd edition(남궁성, 도우출판)
'Programming Language > Java' 카테고리의 다른 글
[Java] 06. OOP - 클래스와 객체 (0) | 2024.03.12 |
---|---|
[Java] 05. 배열 (0) | 2024.03.12 |
[Java] 04. 변수 (0) | 2024.03.12 |
[Java] 02. 자바로 프로그램 작성하기 (0) | 2024.01.20 |
[Java] 01. 자바(Java Programming Language) (0) | 2024.01.19 |