
표준 입력
System.in.read();
-System.in: 시스템의 표준 입력장치
표준 출력
System.out.println();
-System.out: 시스템의 표준 출력 장치
-System.:시스템이 가지고 있는
-out.:출력 장치로
-println():괄호 안의 내용을 출력하고 행을 바꿔라, ln은 line의 줄임말
out의 종류
println(내용);
-괄호 안의 내용을 출력하고 행을 바꿔라
print(내용);
-괄호 안의 내용을 출력만 해라
printf("형식문자열", 값1, 값2, ···);
-괄호 안의 첫 번째 문자열 형식대로 내용을 출력
-d(정수), f(실수), s(문자열)
ex)
System.out.printf("이름: %s", "감자바");
System.out.printf("나이: %d", 25);
형식 문자열에 포함될 값이 2개 이상일 경우 값의 순번을 알려줘야함
System.out.printf("이름: %1d", "김자바", 25);
public class PrintfExample {
public static void main(String[] args) {
/*
자주 사용되는 형식 문자열
[정수]
%d(정수) → 출력 123
%6d(6자리 정수. 왼쪽 빈 자리 공백) → 출력 ___123
%-6d(6자리 정수. 오른쪽 빈 자리 공백) → 출력 123___
%06d(6자리 정수. 왼쪽 빈 자리 0 채움) → 출력 000123
[실수]
%10.2f(소수점 이상 7자리. 소수점 이하 2자리. 왼쪽 빈 자리 공백) → 출력 ____123.45
%-10.2f(소수점 이상 7자리. 소수점 이하 2자리. 오른쪽 빈 자리 공백) → 출력 123.45____
%010.2f(소수점 이상 7자리. 소수점 이하 2자리. 왼쪽 빈 자리 0 채움) → 출력 0000123.45
[문자열]
%s(문자열) → 출력 abc
%6s(6자리 문자열. 왼쪽 빈 자리 공백) → 출력 ___abc
%-6s(6자리 문자열. 오른쪽 빈 자리 공백) → 출력 abc___
[특수문자]
\t(탭(tab))
\n(줄바꿈)
%%(%) → 출력 %
*/
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);
String name = "홍길동";
String job = "도적";
System.out.printf("%6d | %-10s | %10s\n", 1, name, job);
}
}
-출력-
상품의 가격:123원
상품의 가격: 123원
상품의 가격:123 원
상품의 가격:000123원
반지름이 10인 원의 넓이: 314.16
1 | 홍길동 | 도적
키보드에서 입력된 내용을 변수에 저장하기
int keyCode = System. + in. +read();
System. : 시스템이 가지고 있는
in. : 입력 장치에서
read() : 입력된 키코드를 읽어라
main()메소드 끝에 throws Exception이 붙어 있는데
이것은 System.in.read()에 대한 예외 처리 코드임
public class KeyCodeExample {
public static void main(String[] args) throws Exception{
/*
System.in.read()가 실행되면 Console 뷰는 Enter 키가 입력될 때까지 대기 상태가 됨
Enter키가 입력되며 System.in.read()는 입력된 키들에 대한 키코드를 하나씩 읽음
*/
int keyCode;
// A가 입력되면
keyCode = System.in.read();
System.out.println("keyCode: " + keyCode); //A키에 대한 키코드 97를 먼저 읽음
keyCode = System.in.read();
System.out.println("keyCode: " + keyCode); //캐리지 리턴(CR: 13)
keyCode = System.in.read();
System.out.println("keyCode: " + keyCode); //라인 피드(LF: 10)
}
}
System.in.read() 단점
: 키코드를 하나씩 읽기 때문에 2개 이상의 키가 조합된 한글을 읽을 수 없음
: 키보드로부터 입력된 내용을 통 문자열로 읽지 못합
단점을 보완하기 위해 Scanner 클래스를 이용
Scanner scanner = new Scanner(System.in); → 생성된 Scanner를 scanner변수에 저장
Scanner scanner: Scanner변수 선언
new Scanner(System.in); : 시스템의 입력 장치로부터 읽는 Scanner를생성
생성된 Scanner는 scanner변수에 저장했다가 언제든지 키보드에서 읽고 싶을 때
scanner.nextLine()메소드를 실행하면 됨
scanner.nextLine()메소드는 Enter키가 입력되기 전까지 대기 상태,
Enter키가 입력되면 입력된 모든 내용을 문자열로 읽음
//import문
//Scanner가 java.util패키지에 있다는 것을 컴파일러에게 알려주는 역할
import java.util.Scanner;
public class ScannerExample {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
String inputData;
while(true) {
inputData = scanner.nextLine();
System.out.println("입력된 문자열: \"" + inputData + "\"");
//기본타입(byte, short, int, long, float, double, boolean)의 값이 동일한지 비교할때에는 ==를 사용
//문자열(String)이 동일한지 비교할 때에는 equals()메소드를 사용
if(inputData.equals("q")) {
break;
}
}
System.out.println("종료");
}
}
-출력-
a
입력된 문자열: "a"
입력된 문자열: ""
abc
입력된 문자열: "abc"
q
입력된 문자열: "q"
종료