Scanner (입력 메소드)

Brogod97·2022년 12월 7일
0

KH TIL

목록 보기
7/37
post-thumbnail

Scanner Class

사용자로부터 입력되는 정수, 실수, 문자열을 처리하는 클래스

프로그램 실행 중 키보드 입력을 받을 수 있게 하는 역할

Scanner 사용법

  1. import 작성

    import java.util.Scanner;

    최상위 클래스 위, 패키지 아래 작성

    💡 Ctrl + Shift + O: 자동 import 단축키
  2. Scanner 생성

    Scanner sc = **new** Scanner(System.*in*);

    일반적으로 Scanner 줄임 표현으로 sc라고 자주 씀

    import 하지 않을 경우 에러 발생

    이 때, sc는 입력 값을 저장하는 공간이 아님

  3. 키보드 입력 값 받기

    • 정수 : sc.nextInt();
      public static void main(String[] args) {
      	Scanner sc = new Scanner(System.in);
      
      	System.out.print("값을 입력하시오: ");
      	
      	// 입력받은 정수를 input1이라는 변수에 대입
      	// nextInt(): 다음 입력된 정수를 읽어옴 (키보드로 입력된 정수를 읽어옴)
      	int input1 = sc.nextInt(); 
      	System.out.println(input1);
      }
      
      /*
      값을 입력하시오: 12 (받아온 값)
      12
      */
    • 실수 : sc.nextFloat(); 또는 sc.nextDouble();
      System.out.print("실수 값을 입력하시오: ");
      		
      double input2 = sc.nextDouble();
      System.out.print(input2);
      
      /*
      실수 값을 입력하시오: 22.1
      22.1
      */
      .nextInt()와 동일, 자료형 차이

    • 문자열 : sc.next(); 또는 sc.nextLine();

      next()는 띄어쓰기 입력 불가, 띄어쓰기를 구분 인자로 생각하여 각각 저장, 줄 구분까지 저장하지 않음
      // next()는 다음에 입력된 '한 단어'를 읽어옴
      System.out.print("입력1: ");
      String input3 = sc.next();
      System.out.println(input3);
      
      // next 메소드는 저장은 불가능, 새로 입력받은 값만 출력
      System.out.print("입력2: ");
      String input4 = sc.next();
      System.out.println(input4); 
      
      // 입력받은 두 값 동시 출력하기
      System.out.print("입력3: ");
      String input5 = input3 + sc.next(); // input3 변수 재사용
      System.out.println(input5);
      
      /*
      입력1: 사과 (입력값)
      사과
      입력2: 바나나 (입력값)
      바나나
      입력3: 수박 (입력값)
      사과수박
      */
      nextLine()은 문자열에 띄어쓰기 가능, 줄 구분까지 저장
      System.out.print("입력2: ");
      String input4 = sc.nextLine();
      System.out.println(input4);
      
      /*
      입력2: 안녕? 반가워 밥먹을래? (입력값)
      안녕? 반가워 밥먹을래?
      */

next() 다음에 nextLine() 을 받아오는 경우 두번째 입력이 안됨

그 외의 경우의 수엔 다 되는데, 위의 next()nextLine() 의 경우에만 두번째 입력이 안됨

자바 nextInt() 다음에 nextLine() 실행 안되는 현상

next() 에서 nextLine() 입력으로 넘어갈 때 친 enter가 제거되지 않아서 nextLine()의 입력값으로 들어가기 때문이라는 듯?

0개의 댓글