Computer Science/Programming Language

[JAVA] 키보드로부터 입력받기

BS Kwak 2020. 6. 1. 14:07

 System.in

- 키보드로부터 직접 읽는 자바의 표준 입력 스트림

- 키보드로부터 키를 입력받는 메소드 

- 키 값을 바이트(문자 아님)로 리턴

 

하지만 키 값을 바이트 데이터로 넘겨주므로 응용프로그램이 문자 정보로 변환해야한다는 단점이 있음!

 

System.in.read( )

int keyCode = System.in.read();
public class WhileKeyControlExample {
	public static void main(String[] args) throws Exception{	
		//throws Exception : System.in.read()메소드에 대한 예외처리코드
	
		int speed =0;
		int keyCode =0;
		
		while(true) {
			if(keyCode!=13 && keyCode !=10) {	
				//즉, enter키가 입력되면 아래 문장들을 실행시키지 않는다.
                System.out.println("1.증속 | 2. 갑속 | 3. 중지");
				System.out.println("choice");
			}
			keyCode=System.in.read();//키보드의 키 코드를 읽음
			
			if (keyCode==49) {	//1을 읽었을 경우
				speed++;
				System.out.println("현재속도 : "+speed);
			}
			else if(keyCode==50) {	//2를 읽었을 경우
				speed--;
				System.out.println("현재속도 : "+speed);
			}
			else if (keyCode==51) break;	//3을 읽었을 경우
			//break: while문 탈출
		}
		
		System.out.println("close");
	}
}

 

Scanner 클래스 (java.util.Scanner 클래스)

- System.in 에게 키를 읽게 하고, 읽은 바이트를 문자, 정수, 실수, boolean, 문자열 등 다양한 타입으로 변환하여 리턴

- Scanner는 입력되는 키 값을 공백으로 구분되는 아이템 단위로 읽음

- 개발자가 원하는 다양한 타입의 값으로 바꾸어 읽을 수 있음

 

※ 객체 생성

//import 문 필요
import java.util.Scanner;
...
Scanner sc = new Scanner(System.in);  //Scanner 객체 생성

 

 공백문자

- \t, \f, \r, ' ', \n

Scanner sc = new Scanner(System.in);

String name = sc.next();
String city = sc.next();
int age = sc.nextInt();
double weight = sc.nextDouble();
boolean single = sc.nextBoolean();