기본 입출력
#01. 입력
키보드를 통해 사용자에게 어떤 내용을 입력받아서 변수에 저장 가능함.
1) 구현절차
클래스의 정의 상단에 다음의 구문을 추가함
import java.util.Scanner;
####메인 메서드 첫 라인에서 다음의 구문을 추가함
Scanner reader = new Scanner(System.in);
숫자값을 입력받고자 하는 경우
int input = reader.nextInt();
문자열을 입력받고자 하는 경우
String input = reader.nextLine();
형식문자
문자열을 출력할 때 변수값이 적용될 수 있는 치환자.
1) 종류
형식문자 | 의미 |
---|---|
%s | 문자열 |
%d | 정수 |
%f | 부동 소수점 |
%g | 부동 소수점 |
%% | 퍼센트 |
2) 형식문자를 포함하는 문자열 직접 출력하기
형식문자를 치환할 변수들을 순서대로 문자열 뒤에 명시한다.
\n
은 줄바꿈을 의미하는 문자.
String name = "토마토";
int age = 20;
System.out.printf("%s님은 %d세 입니다.\n", name, age );
3) 형식문자를 포함하는 문자열에 변수를 적용한 새로운 문자열 만들기
String name = "토마토";
int age = 20;
// String result = "토마토님은 20세 입니다."; 와 같은 결과
String result = String.format("%s님은 %d세 입니다.\n",name, age ); // 출력되지 않고 변수 저장
4) 자리수 지정
%
다음에 자리수를 의미하는 숫자를 명시할 수 있다.
출력되는 내용은 오른쪽에 정렬하고 남는 자리는 공백으로 채워진다.
만약 자리수가 부족할 경우 원본값이 그대로 출력된다.
문자열의 자리수 지정
System.out.printf("%10s\n", "java"); // 10%s\n 이 10자리를 채우라는 뜻
출력결과
_ _ _ _ _ _java
정수의 자리수 지정
System.out.printf("10%d\n", "1234567"); // 10%d\n 이 10자리를 채우라는 뜻
출력결과
_ _ _1234567 // <--- 10자리
실수의 자리수 지정
소수점을 포함하여 10자리를 만들기 위해 뒤에 0을 추가한다.
System.out.printf("%10f\n", "123.4567"); // 10%f\n 이 10자리를 채우라는 뜻
출력결과
123.456700 // <--- 00붙여 10자를 채움
5) 빈 자리를 0으로 채우기
정수의 경우
빈 자리를 0으로 채우도록 지정할 수 있다.
%
다음에 010
과 같은 형식으로 0을 먼저 명시하고 자리수를 지정한다.
System.out.printf("%010d\n", 1234567); // 앞자리 000을 채워주므로 10자리 만듬
출력결과
0001234567
실수의 경우
// 전체 10자리 0은 값의 뒤에 적용된다.(기본형)
System.out.printf("%010f\n", 123.4567);
// 소수점 둘째자리까지만 출력 (소수점 반올림)
System.out.printf("%.2f\n", 123.4567);
// 소수점 자리수가 지정된 경우에 한해서 빈자리를 공백으로 두고 오른쪽 정렬 (소수점 반올림)
System.out.printf("%10.2f\n", 123.4567);
// 소수점 자리수가 지정된 경우에 한해서 빈자리를 0으로 채우고 오른쪽 정렬 (소수점 반올림)
System.out.printf("%010.2f\n", 123.4567);
출력결과
123.456700
123.46
____123.46
0000123.46
#03. 이스케이프 문자
출력시에 문자열에 포함시킬 수 없는 줄바꿈, 탭키 등을 처리하기 위한 특수문자.
글자 앞에 역슬래시(\
)를 적용하여 두 글자가 모여 한 글자로 인식된다.
이스케이프 문자 | 의미 |
---|---|
\n |
줄바꿈 |
\t |
탭키 |
\" |
쌍따옴표 |
\' |
홑따옴표 |
\\ |
역슬래시 자체 |
System.out.printf("\"Java\" \t\'Programming\'");
System.out.println("Hello\nWorld");
출력결과
"Java" 'Programming'
Hello
World