Java/Base

[JAVA] 키보드 입력

JungCw 2023. 9. 6. 11:18

System.in.read()

1byte의 크기만 읽어오는 메소드이다.

읽어온 값은 ASCII코드에 해당하는 int값으로 반환된다.

 

int e = System.in.read(); // "a"입력
//r = 97
char c = (char)r;
System.out.println(c); // a

 

BufferedReader, InputStreamReader, System.in

 

BufferedReader 객체의 사용법은 다음과 같다.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class IOtest{
	public static void main(String[] args){
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = in.readLine();
    }
}

 

InputStreamReader를 이용해 한 문자씩 읽어올 수 있다.

하지만 이렇게 하면 시간이 오래 걸리기 때문에, BufferedReader를 이용해 스트림에 있는 데이터를 미리 버퍼에 받아 처리한다.

 

Scanner

Scanner 클래스는 기존의 BufferedReader를 사용한 방식보다 좀 더 쉽게 처리할 수 있다.

 

Scanner scan = new Scanner(System.in);

 

아래는 몇몇 scanner의 메소드이다.

 

import java.util.Scanner;

public class ScannerTest{
	public static void main(String[] args){
    	Scanner scan = new Scanner(System.in); //Scanner 선언
        
        // 문자열 입력 (Enter 전까지)
        String str = scan.nextLine();
        
        // 정수 입력
        int num = scan.nextInt(); 
        
        // 실수 입력
        float fnum = scan.nextFloat();
        double dnum = scan.nextDouble(); 
        
        // true or false
        boolean bool = scan.nextBoolean(); 
        
        // 문자열 입력 (공백/space 전까지)
        String str2 = scan.next(); 
        
        scan.close();
    }
}