printf는 우리가 콘솔창에서 무언가 형식을 맞춰서 출력할 필요가 있으면 사용하게 되는 메소드이다.
printf 사용 방법
printf("출력할 내용", 출력할 내용에서 필요한 값1, 값2, 값3...)
" " 안에 우리가 %문자를 넣으면 뒤에서부터 차례대로 값들이 그자리에 들어가게 된다.
package day0304;
public class Ex01Printf {
public static void main(String[] args) {
// 1.10진법 정수 ('d'ecimal)
System.out.println("1. 'd'ecimal"); // 10진법을 "decimal"이라 한다, 십진법을 쓸때는 %d를 사용하면됨.
int number = 124;
// A. 10진법 정수를 그대로 출력해라
System.out.printf("A. [%d]\n", number);
// B. 10진법 정수를 오른 쪽 정력 5자리로 출력해라.
System.out.printf("B. [%5d]\n", number);
// C. 10진법 정수를 오른쪽 정렬 2자리로 출력해라
// 만약 지정한 출력자릿수가 우리가실제 출력할 자릿수보다 작으면 지정한 출력 자릿수는 무시된다.
System.out.printf("C. [%2d]\n", number);
// D. 10진법 정수를 왼쪽 정렬 5자리로 출력해라
System.out.printf("D. [%-5d]\n", number);
// E. 10진법 정수를 오른쪽 정렬 5자리로 맞추고 왼쪽에 빈자리가 있으면 0으로 채워서 출력해라.
System.out.printf("E. [%05d]\n", number);
// 2. 16진법 정수(he'x'adecimal) // 16진법 hexadecimal이라하고 'x'로 입력한다.
System.out.println("2. he'x'adecimal");
// A. 16진법 정수를 알파벳이 있으면 소문자로 해서 그대로 출력해라.
System.out.printf("A. [%x]\n", number);
// B. 16진법 정수를 알파벳이 있으면 대문자로 해서 그대로 출력해라.
System.out.printf("B. [%X]\n", number);
// C. 16진법 정수를 오른쪽 정렬 5자리로 맞추고 알파벳 있으면 대문자로 출력해라
System.out.printf("C. [%5X]\n", number);
// D. 16진법 정수를 왼쪽 정렬 5자리로 맞추고 알파벳이 있으면 소문자로 출력해라
System.out.printf("D. [%-5x]\n", number);
// F. 16진법 정수를 오른 쪽 정렬 5자리로 맞추고 왼쪽 빈자리는 0으로 채우고 알파벳이 있으면 대문자로 해서 출력해라
System.out.printf("E. [%05X]\n", number);
// 3. 실수('f'loat)
// 비록 float의 f를 따왔지만 double이건 float이건 모두 사용 가능하다.
System.out.println("3. 'f'loat");
double d = 123.456;
// A. 실수를 그대로 출력해라
System.out.printf("A. [%f]\n", d);
// B. 실수를 15자리 오른쪽 정렬하여 출력해라
System.out.printf("B. [%15f]\n", d);
// C. 실수를 15자리 왼쪽 정렬하고 소수점을 두번째 자리까지만 출력해라
System.out.printf("C. [%-15.2f]\n", d);
// D. 실수를 15자리 오른쪽 정력하고 소수점은 2번째 자리, 왼쪽 빈자리는 0으로 채워서 출력해라
System.out.printf("D. [%015.2f]\n", d);
// 4. 문자열 ('S'tirng)
String str1 = new String("abcDEF");
System.out.println("4. 'S'tring");
// A. 스트링을 그대로 출력해라
System.out.printf("A. [%s]\n", str1);
// B. 스트링을 모두 대문자로 출력
System.out.printf("B. [%S]\n", str1);
// C. 스트링을10자리로 오른쪽 정렬으로해서 내용은 바꾸지 말고 출력해라
System.out.printf("C. [%10s]\n", str1);
// D. 스트링을 왼쪽 정렬 10자리로 하고 모든 글자는 대문자로 출력해라.
System.out.printf("D. [%-10S]\n", str1);
// printf()를 사용할때 주의할 점
// 1. 존재하지 않는 %문자를 사용하면 에러가 발생한다.(=UnknownFormatCoversionExcepion:)
// 특히 여러분들이 흔히 하는 실수중에 하나가 % 뒤에 아무것도 안적는 경우가 있다.
// System.out.printf("%q", 123);
// %문자와 맞지 않는 값을 넣어주면 에러가 난다.
// System.out.pritnf("%d", 1.3);
// 3. 여러개의 % 문자를 조합해서 우리가 출력할 내용을 지정해줄 수도 있다.
// 하지만 넘겨주는 값의 갯수가 %문자의 갯수보다 많으면 상관없다
System.out.printf("첫번째 정수: %d 두번째 실수: %f \n", 2, 3.4, 5, 6, 7);
// 4하지만 %문자의 갯수가 넘겨주는 값의 갯수보다 많으면 에러가 발생한다.(=MissingFormat)
// System.out.printf("%d %d %d", 1, 2);
}
}
'JAVA > 국비 공부' 카테고리의 다른 글
Control Static(제어문) (0) | 2021.03.04 |
---|---|
Scanner (0) | 2021.03.04 |
eclipse 환경설정 (0) | 2021.03.03 |
비교연산자 (주의사항) (0) | 2021.03.03 |
간단한 테스트 (0) | 2021.03.03 |