본문 바로가기
Java

[Java]Scanner 클래스

by bkuk 2022. 10. 5.

Scanner의 특징

 

첫번째,

예를 들어 100을 입력하고자 할 때,

String(문자열)로 입력받고 싶으면 next()나 nextLine() 메서드를 사용하고

int(정수)로 입력받고 싶다면 nextInt() 메서드를 사용해서 입력을 받으면 자동적으로 해당 자료형으로 입력된다.

 

두번째,

Scanner를 사용할 때는 꼭 import를 통해 java.util.Scanner를 호출해야한다.

아래 그림과 같이 Ctrl + Shift + O를 눌러서 자동 import 기능을 사용하면 편리하다.

 

 

세번째,

Scanner의 입력 메서드는 대부분 공백과 개행(' ', '\t', '\r', '\n' 등등..)을 기준으로 읽는다. 

 


Scanner 사용하기

위에서 업근했듯이 Scanner 클래스 사용하기 위해서는 import를 통해 java.util.Scanner를 호출해줘야 합니다.

import java.util.Scanner;

 

Scanner 객체 생성하기

위에서 호출을 했으니, Scanner 객체를 생성하겠습니다. 객체 생성을 위한 형식은 아래와 같습니다.

클래스_이름 참조_변수명 = new 생성자명;

객체 생성 예시

Scanner scan = new Scanner(System.in)

// ※Scanner(System.in): 표준 입력(콘솔 입력)으로부터 자료를 읽어 들이는 Scanner 생성
// 생성자는 여러가지가 있으나 본 포스팅에서는 System.in에 대해서만..

 

 

Scanner 클래스의 메서드

메서드 설명
next() 문자열 String을 ' '(띄어쓰기) 단위로 읽음
nextLine() 문자열 String을 줄 단위로 읽음
nextInt() int 자료형을 읽음
nextDouble() double 자료형을 읽음
in.nextByte()
byte 자료형을 읽음
nextShort() short 자료형을 읽음
nextLong() long 자료형을 읽음
nextFloat() float 자료형을 읽음
nextBoolean() double 자료형을읽음

next()메소드로 숫자를 입력받으면 문자열로 취급됨

 


예제 1

사용자가 두 문자(숫자)를 입력하면 처음 입력 시 띄어쓰기 단위로 입력받은 문자(숫자) 를 출력

예제 1-2

예제 1-3

 


예제 2

사용자가 특정 문자를 입력하기 전까지 실행되는 프로그램

import java.util.Scanner;

public class ScannerLoopEx01 {
	public static void main(String[] args) {
    
		Scanner scan = new Scanner(System.in);	//Scanner 클래스 생성
		
		String msg = "";	// 변수 선언 및 초기화
		
		while(true) {	// 무한루프, 무조건 반복
			System.out.print( "입력 > ");
			msg = scan.nextLine();	// 사용자의 입력 값을 선언했던 변수에 대입
			if(!msg.equals("exit")) {	// 입력 값이 'exit' 아니라면
				System.out.println( "입력된 메시지 : " + msg);	// 입력한 값을 출력하고
			} else {
				System.out.println( "프로그램 종료" );	// 'exit'라면 종료
				break;	// 반복문 종료
			}
		}
		scan.close();	// 스캔 종료
	}

}

 

참고: https://st-lab.tistory.com/92 

 

댓글