본문 바로가기

백엔드개발자 준비하기

[백엔드개발자 준비하기] Scanner(스캐너)

[문자열]
-여러 문자를 하나로 묶은 것
-문자열은 기본 자료형에 속하지 않는다.
-API에서 제공하는 String class 를 이용
-java.lang 안에 들어있기 때문에 String 사용가능
-문자와 문자열은 + 연산자로 합칠수 있다
-문자열의 시작과 끝은 "큰따옴표" 사용
-Scanner Class 를 사용하여 표준 입력
-스캐너를 사용하면 콘솔에서 입력을 받을 수 있음
-API에서 제공하는 java.util.Scanner class를 이용
-스캐너는 입력을 받을 때 각각의 자료형에 따라 next 뒤에 붙는게 달라짐

//ctrl + shift + o : 유틸 자동완성

스캐너 사용시 nextLine을 제외한 나머지는 spacebar와 enter 를 사용할 수 없다 

System.in 에서 시스템은 운영체제를 의미한다 
키보드에서는 띄어쓰기와 엔터가 다 입력된다
next는 띄어쓰기와 엔터가 무시된다 하지만 기록은 전부 남아있다
따라서 다음에 nextLine을 사용할 경우 버퍼에 들어있던 마지막 엔터가 실행이 되며 해당 줄이 건너뛰어진다
그렇기 때문에 nextLine을 제외하고 다른 것을 쓰다가 nextLine을 사용해야할 상황이 오면 중간에 nextLine을 한번 호출하여 버퍼에 있던 엔터를 한번 날려준다.

 

[예시1]

Scanner scanner = new Scanner(System.in);
int inputNum1 = 0;
int inputNum2 = 0;
int inputNum3 = 0;
int inputNum4 = 0;
int inputNum5 = 0;
		
System.out.print("입력1 : ");
inputNum1 = scanner.nextInt();
System.out.print("입력2 : ");
inputNum2 = scanner.nextInt();
System.out.print("입력3 : ");
inputNum3 = scanner.nextInt();
System.out.print("입력4 : ");
inputNum4 = scanner.nextInt();
System.out.print("입력5 : ");
inputNum5 = scanner.nextInt();
		
int sum = inputNum1 + inputNum2 + inputNum3 + inputNum4 + inputNum5;
		
System.out.println("합 : " + sum);

 

[예시2]

Scanner scanner = new Scanner(System.in);
		
String name = null;
int age = 0;
String address = null;
String phone = null;
		
System.out.print("이름 : ");
name = scanner.next();
		
System.out.print("나이 : ");
age = scanner.nextInt();
		
scanner.nextLine();
		
System.out.print("주소 : ");
address = scanner.nextLine(); 
		
System.out.print("연락처 : ");
phone = scanner.next(); 
		
System.out.println("사용자의 이름은 " + name + "이고 나이는 " + age + "살입니다.");
System.out.println("주소는 " + address + "에 거주중입니다.");
System.out.println("연락처는 " + phone + " 입니다.");

 

[예시3]

Scanner scanner = new Scanner(System.in);
		
// nextLine 은 띄어쓰기를 허용함 이 외는 띄어쓰기를 허용하지 않음 
System.out.print("문자열1 : ");
String str1 = scanner.nextLine();
		
System.out.print("문자열2 : ");
String str2 = scanner.next();
		
System.out.print("정수 : ");
int num1 = scanner.nextInt();
		
System.out.print("실수 : ");
double num2 = scanner.nextDouble();
		
System.out.println("문자열1 : " + str1);
System.out.println("문자열2 : " + str2);
System.out.println("정수 : " + num1);
System.out.println("실수 : " + num2);

 

[예시4]

조건문

Scanner scanner = new Scanner(System.in);
		
int a = 0;
int b = 0;
int c = 0;
		
int max = 0;
int min = 0;
	
System.out.print("정수 3개 입력 : ");
a = scanner.nextInt();
b = scanner.nextInt();
c = scanner.nextInt();
		
max = a;
max = b > max ? b : max;
max = c > max ? c : max;

min = a;
min = b < min ? b : min;
min = c < min ? c : min;
		
		
/*
 * max = a > b && a > c ? a : b > c ? b : c;
 * 
 * min = a < b && a < c ? a : b < c ? b : c;
 */
		
System.out.println("a : " + a);
System.out.println("b : " + b);
System.out.println("c : " + c);
		
		
		
System.out.println("최대값 : " + max);
System.out.println("최소값 : " + min);