profile image

L o a d i n g . . .

키보드에서 입력된 내용을 변수에 저장하기

키보드에서 키 하나를 입력하면 프로그램에서는 숫자로 된 키코드를 읽을 수 있다.

 

주요키코드 

0 = 48 A = 65 a = 97 Enter = [CR=13, LF=10]

 

package sec04.exam02;

import java.io.IOException;

public class KeyCodeEx {
	public static void main(String[] args) throws IOException {
		int keyCode;
        
	//  keyCode = (시스템이 가지고있는).(입력장치에서).(입력된 키코드를 읽기);
		keyCode = System.in.read();
		System.out.println("keyCode: " + keyCode);

		keyCode = System.in.read();
		System.out.println("keyCode: " + keyCode);
		
		keyCode = System.in.read();
		System.out.println("keyCode: " + keyCode);
	}
}

 

실행 후 콘솔에 a 를 입력하고 엔터를 치면

 

a와 Enter CR(캐리지리턴) 그리고 Enter LF(라인피드)로 구성된 키코드가 출력된다.

 

 

 

 

입력된 키의 개수와 상관없이 키코드 읽기

package sec04.exam02;

import java.io.IOException;

public class ContinueKeyCodeReadEx {
	public static void main(String[] args) throws IOException {
		int keyCode;
		
		while(true) {
			keyCode = System.in.read();
			System.out.println("keyCode: " + keyCode);
		}
	}
}

while문을 사용하여 무한반복 실행되기 때문에 종료시 콘솔에서 강제종료해줘야함

 

 

 

 

q를 입력하면 반복 종료

package sec04.exam02;

import java.io.IOException;

public class QStopEx {
	public static void main(String[] args) throws IOException {
		int keyCode;
		
		while(true) {
			keyCode = System.in.read();
			System.out.println("keyCode: " + keyCode);
			if(keyCode == 113) {
				break;
			}
		}
	}
}

 

System.in.read()의 단점은 키코드를 하나씩 읽기때문에 2개이상의 키가 조합된 한글&문자열을 읽을 수 없다.

 

그래서 자바는 보완책으로 Scanner클래스를 제공하고있다.

 

 

 

 

 

키보드에서 입력된 내용을 문자열로 얻기

package sec04.exam02;

import java.util.Scanner;

public class ScannerEx {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		while(true) {
			String inputData = scanner.nextLine();
			System.out.println("입력된 문자열 : \"" + inputData + "\"");
			if (inputData.equals("q")) {
				break;
			}
		}
		System.out.println("종료");
	}
}

스캐너 클래스를 import 하여 실행

 

 

 

 

참고 :

- 혼자공부하는 자바(신용권), 한빛미디어

반응형
복사했습니다!