초기 자바에서는 콘솔입력하는 것이 자바에 익숙치 않은 개발자에게는
다소 부담스러운 방법 이었다고 한다.
그도 그럴것이 숫자 하나를 받기위해 아래의 코드들이 필요했으며
이는 자바 입출력, Wrapper클래스, Exception에 대해 알고 있어야 했다.
1 2 3 | BufferedReader br = new BufferedReader(new InputStreamReader(Sysetem.in)); String str = br.readLine(); int num = Integer.parseInt(str); | cs |
하지만 자바 5.0부터는 대안으로 Scanner를 이용하여 입력 받을 수 있도록 변경되었으며,
위의 소스를 아래와 같이 간단히 변경 가능해졌다.
1 2 | Scanner no = new Scanner(System.in); int num = no.nextInt(); | cs |
물론 int형 말고 String, Boolean, byte, double 등 여러 형태로 받을 수 있다.
간단한 예제를 한번 만들어 보자면,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import java.util.Scanner; class ScannerEx{ public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.print("어제 먹은 음식은 무엇인가요?"); String text = input.nextLine(); System.out.println("맛있는 " + text + ", 부럽습니다"); System.out.print("직업은 직장인인가요? (true/false)"); boolean studentFlag = input.nextBoolean(); if(studentFlag==true){ System.out.println("저런... 안타깝습니다."); }else{ System.out.println("다행입니다."); } System.out.println("지금은 몇시고, 퇴근시간은 몇시인가요? "); System.out.print("지금시간(00~24) : "); int now = input.nextInt(); System.out.print("퇴근시간(00~24) : "); int fin = input.nextInt(); int result = fin - now; if(result > 0){ System.out.println(result+"시간 남았네요, 조금만 힘내요."); }else{ System.out.println("뭔가 이상한거 같은데... 집안가나요.."); } } } | cs |
7~9 : String형태로 콘솔 입력 후 출력.
11~17 : Boolean형태로 콘솔 입력 후 출력.
19~30 : int형태로 콘솔 입력 후 차이 구한 뒤 출력.
실행결과는 다음과 같다.
Scanner클래스는 java.util 패키지에 제공되는 클래스로 아래와 같이 많은 생성자를 제공하는데.
즉 키보드로 입력되는 것 이외에도 여러 데이터를 추출할 수 있음을 뜻한다.
'Note > JAVA' 카테고리의 다른 글
[JAVA] 난수를 발생해주는 클래스, Random클래스 (0) | 2018.12.14 |
---|---|
[JAVA] System.out.printf 의 서식문자(변환문자) 정리 (0) | 2018.11.07 |
[JAVA] 비트 쉬프트(Shift)연산자 : << , >> , >>> (2) | 2018.10.05 |
[JAVA]오류: 기본 클래스 을(를) 찾거나 로드할 수 없습니다. (10) | 2018.09.12 |