System.out.printnl("출력내용");
모니터에 값을 출력하려면 위에 있는 코드를 사용해서 출력을 해야한다.
여기서 system.out은 시스템의 표준 출력 장치를 말한다. out이 출력 장치면 in은 표준 입력을 말한다 .
System.out.read();
*print메소드
- printnl(내용) : 괄호 안의 내용을 출력하고 행을 바꾸는 메소드
- print(내용): 괄호 안의 내용을 출력하는 메소드
- printf("형식문자열,값1, 값2 ") : 괄호 안의 첫 번째 문자열 형식대로 내용을 출력하는 메소드
*printf()
개발자가 원하는 형식화된 문자열을 출력할수가 있다 .예를 들면
System.out.printf("이름: %s","한정훈"); // 이름 :한정훈
System.out.printf("나이: %d","32"); // 나이 :32
이런식으로 코드를 구현 할 수 있다 .
한 문장으로 만들 수 도 있다 . 예를들면
System.out.printf("이름: %1s, 나이: %2d", "한정훈" , 32); // 이름 :한정훈 , 나이:32
그리고 형식문자열에는 많은 기능이 숨겨져있다.
예를 들면
%[argument_index$] [flags] [width] [.precision] [conversion]
값의 순번 -,0 전체자릿수 소수 자리수 변환문자
형식 문자열은 %conversion 필수로 작성하고 나머지는 생략이 가능하다.
%은 형식 문자열의 시작을 알리고 , [conversion]은 d(정수) , f(실수) , s(문자열)을 뜻한다.
argument_index$은 문자열에 포함될 값이 2개 이상일 경우에 순번을 정해줘야하는데 첫번째는 1$ , 두번째는 2$이런식으로 정해줘야한다.
flags는 빈 자리 채우는 방법이다. 생략이 되면 왼쪽이 공백으로 채워지고 -가 오면 오른쪽이 공백으로 채워진다. 0은 공백대신 0으로 채워진다.
public static void main(String[] args) {
// 정수
int value = 123;
System.out.printf("상품의 가격:%d원\n", value );
System.out.printf("상품의 가격:%6d원\n", value );
System.out.printf("상품의 가격:%-6d원\n", value );
System.out.printf("상품의 가격:%06d원\n", value );
//실수
double area = 3.14159 * 10 * 10;
System.out.printf("반지름이 %d인 원의 넓이는:%10.2f\n", 10,area );
System.out.printf("반지름이 %d인 원의 넓이는:%-10.2f\n", 10,area );
System.out.printf("반지름이 %d인 원의 넓이는:%010.2f\n", 10,area );
//문자열
String name = "한정훈";
System.out.printf("이름:%s\n", name );
System.out.printf("이름:%6s\n", name );
System.out.printf("이름:%4s\n", name );
System.out.printf("이름:%5s\n", name );
System.out.printf("이름:%-6s\n", name );
System.out.printf("이름:%-5s\n", name );
System.out.printf("이름:%s\n", name );
키보드에서 입력된 내용을 변수에 저장하기
키보드에서 키 하나를 입력하면 프로그램에서는 숫자로 된 키코드를 읽을 수 있습니다. 예를 들어 알파벳 a를 입력하면 97번을 , 숫자 1을 입력하면 49번을 읽을 수 있다. 키코드를 읽기 위해서는 System.in의 read()를 이용하면 된다.
int KeyCode = System.in.read()
public class KeyCode {
public static void main(String[] args) throws Exception {
int 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의 키코드인 97이 결과값이 나오고 그 다음 엔터키에 대한 키코드가 반환이 되는데 엔터는 다른 키들과 다르게 캐리지 리턴 CR :13 , LF:10 두 키가 있어 두개의 키가 반환이 된다.
Scanner
system.in.read()의 단점은 키코드를 하나씩 읽기 때문에 2개이상의 키가 조합된 한글을 읽을 수가 없다. 그리고 키보드로부터 입력된 내용을 통 문자열로 읽지 못한다. 이러한 단점을 보완하기 위해 Scanner를 쓰고 있다.
Scanner scanner = new Scanner(System.in);
String inputData = scanner.nextLine()
scanner라는 변수를 선언하고 new Scanner(System.in)은 시스템의 입력 장치로 부터 읽는 scanner를 생성하는 코드이다.
생성된 Scanner는 변수인 scanner에 저장했다가 언제든기 키보드에서 읽고 싶을때 scanner.nextLine()메소드를 실행하면된다. scanner.nextLine()메소드는 엔터키가 입력되기 전까지 대기 상태가 되며, 입력이 되면 모든 내용들이 문자열로 읽혀진다.
public class ScannerExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String inputData;
while(true) {
inputData= scanner.nextLine();
System.out.println("입력된 문자열: \""+ inputData+"\"");
if(inputData.equals("p")){
break;
}
}
System.out.println("종료");
}
'자바' 카테고리의 다른 글
[java] 연산자의 종류 (0) | 2023.03.30 |
---|---|
[java] 연산자와 연산식 (0) | 2023.03.30 |
[java] 타입 변환 (0) | 2023.03.24 |
[java] 기본 타입(정수타입, 논리타입, string 타입, 실수 타입) (0) | 2023.03.24 |
[java] 변수 (0) | 2023.03.24 |