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 |