티스토리 뷰
📍 Scanner 클래스
– 화면, 파일, 문자열과 같은 입력 소스로부터 문자데이터를 읽어오는데 사용되는 클래스.
– 여러 형태의 생성자를 오버로딩하여 지원하므로 다양한 입력소스로부터 데이터를 읽을 수 있음.
ex ) scanner(String source), scanner(file source) 등
– 정규표현식 (Regular expression)을 이용한 라인단위의 검색을 지원함.
– scanner를 사용하기 위해서는 java.util.Scanner import 필요.
– nextXXX() 메서드를 호출하여 입력 받음.
1 ) nextInt() : int
2 ) nextLine() : String
▸ Scanner 설정 문법
Scanner 변수명 = new Scanner( );
Scanner 변수명 = new Scanner(System.in);
– 입력을 받을 시 System.in 활용.
– 변수명.nextXXX() 메서드를 호출하여 입력 받음.
EX1 ) 기본 형태 사용 |
Scanner scan = new Scanner(System.in); System.out.println("원하는 값을 입력하세요. 프로그램을 종료하려면 Q를 입력하세요 : "); String input = ""; input = scan.next(); System.out.println("입력하신 값은 " + input + " 입니다.");
코드 분석
1 | – Scanner 클래스의 인스턴스를 생성하고, 생성자의 파라미터에 입력받을 시 사용하는 System.in을 넣어줌. |
3 | – 현재 값을 입력할 수 있다고 안내하는 문자열을 작성함. |
6 | – scan의 next() 메서드를 호출하여 내가 입력한 결과값을 input에 저장함. |
✓ 실행 결과
원하는 값을 입력하세요. 프로그램을 종료하려면 Q를 입력하세요 :
Q
입력하신 값은 Q 입니다.
EX2 ) do-while문으로 next() 메서드 & nextLine() 메서드 사용 |
1. next() 메서드 호출
do { System.out.println("원하는 값을 입력하세요. 프로그램을 종료하려면 Q를 입력하세요 : "); input = scan.next(); System.out.println("입력하신 값은 " + input + " 입니다."); } while(!input.equals("Q"));
– 'Q'를 입력할 때까지 계속 입력 받는 do-while문 작성.
– 공백을 허용하지 않을 때 사용. 즉, 공백을 받지 않음.
→ 1 1을 넣으면 공백을 구분자 (delimiter)로 생각하여 하나씩 입력받아 input에 대입.
✓ 실행 결과
원하는 값을 입력하세요. 프로그램을 종료하려면 Q를 입력하세요 :
1 1
입력하신 값은 1 입니다.
원하는 값을 입력하세요. 프로그램을 종료하려면 Q를 입력하세요 :
입력하신 값은 1 입니다.
원하는 값을 입력하세요. 프로그램을 종료하려면 Q를 입력하세요 :
2. nextLine() 메서드 호출
do { System.out.println("원하는 값을 입력하세요. 프로그램을 종료하려면 Q를 입력하세요 : "); input = scan.nextLine(); System.out.println("입력하신 값은 " + input + " 입니다."); } while(!input.equals("Q"));
– 공백을 허용하므로 문자열을 입력받을 때 사용함.
– 입력한 값을 라인 단위로 읽음.
→ 1 1을 넣으면 공백이 허용되어 1 1 모두 input에 대입.
✓ 실행 결과
11
입력하신 값은 11 입니다.
원하는 값을 입력하세요. 프로그램을 종료하려면 Q를 입력하세요 :
EX3 ) nextInt() 메서드 사용 |
Scanner scan = new Scanner(System.in); String input = ""; System.out.println("숫자 (정수)를 입력하세요. : "); int num = scan.nextInt(); System.out.println(num);
– 정수가 아닌 다른 값을 입력하면 InputMismatchException 예외 발생.
✓ 실행 결과


EX4 ) nextDouble() 메서드 사용 |
Scanner scan = new Scanner(System.in); String input = ""; System.out.println("숫자 (실수)를 입력하세요. : "); double dnum = scan.nextDouble(); System.out.println(dnum);
– 실수가 아닌 다른 값을 입력하면 InputMismatchException 예외 발생.
– 정수값을 입력하면 실수로 자동 인식함.
✓ 실행 결과



EX5 ) nextBoolean() 메서드 사용 |
Scanner scan = new Scanner(System.in); String input = ""; System.out.println("true 또는 False를 입력하세요. : "); boolean b = scan.nextBoolean(); System.out.println(b);
– 대소문자 구분없이 true 또는 false를 제외한 나머지 값을 입력하면 InputMismatchException 예외 발생.
✓ 실행 결과



EX6 ) InputMismatchException 예외처리 |
Scanner scan = new Scanner(System.in); String input = ""; System.out.println("true 또는 False를 입력하세요. : "); try { boolean b = scan.nextBoolean(); if(b == true) { System.out.println(b + " 입력."); }else { System.out.println(b + " 입력."); } }catch(InputMismatchException e){ System.out.println("true 또는 false의 값을 입력해주세요!"); }
코드 분석
7 | – try-catch문을 사용하여 잘못된 값을 입력하였을 때 발생하는 InputMismatchException을 예외처리 해보겠음. |
8 | – nextBoolean() 메서드를 사용하여 나온 결과값을 변수 b에 저장. |
9~13 | – 사용자가 입력한 값(= b)이 ture이면 if문을 실행, 아닐 경우 (= false) else문을 실행하여 사용자가 입력한 값을 각각 출력문을 통해 출력해줌. |
15~17 | – 사용자가 true 또는 false가 아닌 다른 값을 입력했을 때 예외처리를 해 놓았으므로, catch문에서 InputMismatchException 예외처리 하여 에러가 발생하는게 아닌 작성해 놓은 출력문이 출력됨. |
✓ 실행 결과


TEST ) |
Q. Scanner 클래스를 활용하여 사용자의 이름 (inputName)을 입력받고, "inputName"님 환영합니다!" 출력하기.
(이름을 입력하지 않고 엔터키 (null string)를 입력하면 "이름을 입력하세요!" 라고 출력하기.
Scanner scan = new Scanner(System.in); String inputName; System.out.println("사용자의 이름을 입력하세요. : "); inputName = scan.nextLine(); if(!inputName.equals("")) { System.out.println(inputName + "님 환영합니다!"); }else { System.out.println("이름을 입력하세요!"); }
– if문의 조건으로 inputName이 비어있지 않다고 작성할 때, NOT연산자와 .equals() 메서드를 사용해야
NULL값 비교 가능.
✓ 실행 결과


'JAVA' 카테고리의 다른 글
제네릭 (Generic, 일반화) (0) | 2023.04.14 |
---|---|
Object 클래스 (0) | 2023.04.05 |
인터페이스 (Interface) (0) | 2023.04.04 |
상수 (Constant) (0) | 2023.04.04 |
추상메서드와 추상클래스 (Abstract) (0) | 2023.03.29 |
- Total
- Today
- Yesterday
- 문자형
- null
- Method
- DB
- 데이터타입
- 주석문
- 단일행함수
- 제어문
- 다형성
- 업캐스팅
- model2
- gitbash
- github
- 숫자형
- 내장객체
- 원격저장소
- javascript
- 논리형
- mysql
- jsp
- Git
- 인자
- JSTL
- Object
- 매개변수
- 로컬저장소
- 출력문
- 오버라이딩
- Dao
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |