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

2022. 7. 4. 01:00·공부/Java

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

'공부 > Java' 카테고리의 다른 글

[공부/Java] 자바의 main() 메소드, 예외, 예외 처리, try-catch-finally, 예외 클래스  (0) 2022.07.11
[공부/Java] 자바의 배열, 선언, 생성, 초기화, 인덱스, 치환, 공유, 크기, for-each문, 리턴  (0) 2022.07.11
[공부/Java] 자바의 데이터 타입, 리터럴, var, 상수, 타입 변환, 수식연산자, 조건문, 반복문  (0) 2022.07.04
[공부/Java] 자바 프로그램 기본 구조, 식별자, 식별자 원칙, 관습  (0) 2022.07.04
[공부/Java] 자바의 특징, WORA, JVM, JDK, JRE, 배포판, 응용프로그램  (0) 2022.07.01
'공부/Java' 카테고리의 다른 글
  • [공부/Java] 자바의 main() 메소드, 예외, 예외 처리, try-catch-finally, 예외 클래스
  • [공부/Java] 자바의 배열, 선언, 생성, 초기화, 인덱스, 치환, 공유, 크기, for-each문, 리턴
  • [공부/Java] 자바의 데이터 타입, 리터럴, var, 상수, 타입 변환, 수식연산자, 조건문, 반복문
  • [공부/Java] 자바 프로그램 기본 구조, 식별자, 식별자 원칙, 관습
yulee_to
yulee_to
  • yulee_to
    yulee
    yulee_to
  • 전체
    오늘
    어제
    • 전체 글 (107)
      • CS (2)
        • OS (0)
        • DB (0)
        • Network (2)
      • 공부 (21)
        • Spring (9)
        • Java (12)
        • Python (0)
        • 알고리즘 (0)
        • 기타 (0)
      • 백준 (39)
        • C++ (39)
        • Java (0)
      • 도서 (39)
        • 자바의 신 (32)
        • 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (7)
      • 기타 (4)
        • Blog (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    Java
    위상정렬
    스프링 입문
    Spring
    다이나믹프로그래밍
    EC2
    자바의 신
    aws
    백준
    문제풀이
    DP
    다익스트라
    boj
    스터디
    객체지향
    자바
    1일1백준
    GodOfJava
    C++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
yulee_to
[공부/Java] 자바 키보드 입력 - Scanner
상단으로

티스토리툴바