⛏️/JAVA
[JAVA] 39. Scanner
defyuil
2023. 11. 7. 11:33
Scanner
- 화면, 파일, 문자열과 같은 입력소스로부터 문자데이터를 읽어오는데 사용되는 클래스
- 여러 형태의 생성자를 오버로딩하여 지원하므로 다양한 입력소스로부터 데이터를 읽을 수 있음 (ex. scanner(String source), scanner(file source) 등)
- 정규표현식(Regular Expression)을 이용한 라인단위의 검색을 지원
- nextXXX() 메서드를 통해 입력받은 문자를 다시 변환하는 수고를 덜어줌 (ex. nextInt() : int , nextLine() : String)
- Scanner 를 사용하기 위해서는 java.util.Scanner import 필요
< Scanner 설정 문법 >
Scanner 변수 = new Scanner(); // 입력을 받을 시 System.in 활용
변수.nextXXX() 메서드를 호출하여 입력 받음
Scanner scan = new Scanner(System.in); // System.in : 키보드
String input = "";
// do {
// System.out.println(
// "원하는 값을 입력하세요. 프로그램을 종료하려면 'Q'를 입력하세요 : ");
// // 입력한 값을 라인 단위로 읽어 옴
//// input = scan.next();
// // => 공백을 허용하지 않을 때 사용
// // => 1 1 을 입력하면 공백을 구분자(delimiter) 로 생각하여 앞의 1만 입력받아
// // input 에 대입
//
// input = scan.nextLine();
// // => 라인 전체를 문자열로 인식
// // => 1 1 을 입력하면 1 1 이 출력
//
// System.out.println("입력하신 값은 " + input + " 입니다.");
//
// } while(!input.equals("Q"));
//
// System.out.println("프로그램을 종료합니다!");
// nextInt() : 정수만 입력받음
// try {
// System.out.println("숫자(정수)를 입력하세요 : ");
// int num = scan.nextInt();
// System.out.println(num);
// } catch(InputMismatchException e) {
// System.out.println("숫자(정수)만 입력하세요!");
// }
//
// System.out.println("프로그램을 종료합니다!");
// nextDouble() : 실수만 입력받음
// System.out.println("숫자(실수)를 입력하세요 : ");
// double dNum = scan.nextDouble();
// System.out.println(dNum);
// // => 정수값을 입력하면 실수로 인식
//
// System.out.println("프로그램을 종료합니다!");
// nextBoolean() : true 또는 false 만 입력받음
System.out.println("true 또는 false 를 입력하세요 : ");
boolean b = scan.nextBoolean();
System.out.println(b);
// => 대소문자 구별없이 true 또는 false 만 입력 가능
// => true 또는 false 이외의 값을 입력하면 InputMismatchException 예외 발생!
TEST
package scanner;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
/*
* Scanner 클래스를 활용하여
* 사용자의 이름(inputName) 을 입력받고 "OOO 님 환영합니다!"
* 를 출력해보자!
* (사용자의 이름을 입력하지 않고 엔터키를 입력하면
* "이름을 입력해주세요!" 를 출력)
*/
Scanner scan = new Scanner(System.in);
String inputName;
System.out.print("사용자의 이름을 입력하세요 : ");
inputName = scan.nextLine();
// if(!(inputName.equals(""))) {
// System.out.println(inputName + " 님 환영합니다!");
// } else {
// System.out.println("이름을 입력해주세요!");
// }
String sysId = "admin";
// if(inputName == sysId) {
if(inputName.equals(sysId)) {
System.out.println("관리자 로그인!");
} else {
System.out.println("ID 입력 오류!");
}
}
}