공부/Java

[공부/Java] 자바 키보드 입력 - Scanner

yulee_to 2022. 7. 4. 01:00

Java


System.in

  • 키보드로부터 직접 읽는 자바의 표준 입력 스트림
  • 키 값을 문자가 아닌 바이트로 리턴하므로 응용프로그램이 문자 정보로 변환해줘야 함

Scanner

  • java.util.Scanner 클래스
  • System.in에게 키를 읽게 하고, 읽은 바이트를 다양한 타입으로 변환하여 리턴해주는 클래스
  • 공백 문자 ('\t', '\f', '\r', '\n' , ' ' )로 구분되는 아이템 단위로 읽음

키보드 입력 처리 과정

  • 키보드 입력 -> 바이트 표준 입력 스트림 -> 바이트 스트림 -> Scanner -> 문자로 변환 -> 자바 응용 프로그램

Scanner의 주요 메소드

메소드 설명
String next() 다음 토큰을 문자열로 리턴
byte nextByte() 다음 토큰을 byte타입으로 리턴
short nextShort() 다음 토큰을 short타입으로 리턴
int nextInt() 다음 토큰을 int 타입으로 리턴
long nextLong() 다음 토큰을 long 타입으로 리턴
float nextFloat() 다음 토큰을 float 타입으로 리턴
double nextDouble() 다음 토큰을 double 타입으로 리턴
boolean nextBoolean() 다음 토큰을 boolean 타입으로 리턴
String nextLine() '\n'을 포함하는 한 라인을 읽고 '\n'을 버린 나머지 문자열 리턴
void close() Scanner 사용 종료
boolean hasNext() 현재 입력된 토큰이 있으면 true, 아니면 입력될 때까지 무한정 대기, crtl+z가 입력시 false 리턴후 종료

사용법

  • Scanner 객체 선언 후 메소드를 사용하여 입력을 읽어옴
    • Scanner scanner = new Scanner(System.in);
    • int n = scanner.nextInt();

사용 예시

import java.util.Scanner;

public class ScannerEx{
	public static void main (String[] args) {
		System.out.println("당신은 몇살입니까? : ");

		Scanner scanner = new Scanner(System.in);
		int age = scanner.nextInt(); //int형으로 읽기

		System.out.println("당신의 나이는 "+ age+"살이군요!");
   		scanner.close(); // scanner 닫기
	}
}

출력

당신은 몇살입니까? :
22
당신의 나이는 22살이군요!

 

728x90