본문 바로가기

JAVA/국비 공부

출력 - printf

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