본문 바로가기
개발 노트/기초 지식

[java] printf() , println(), 서식지정자

by tokkiC 2022. 4. 26.

println() 의 사용


println() 의 경우 ()안의 매개 변수 값으로 숫자와 문자열을 모두 가질수 있다 (boolean 도 가능, true false 는 "" 없이 입력됨)
print()의 경우와 동일하며 ln 을 붙이는 것으로 줄바꿈을 추가명령한 것 뿐이다

system.out.println(10);  //  10   숫자
system.out.println(true);  //  true    - ()안에 따옴표가 필요없다 = 문자열이 아닌 boolean 타입이다
system.out.println("INFP");  //  INFP    - 문자열
char[] toc = {'t', 'o', 'k','k','i','c'};
system.out.println(toc);     //  tokkic  - 배열 내부 요소도 출력
system.out.println("고구마가 3개");  //  고구마가 3개   - 문자열

printf() 의 사용


printf()는 print() 와 달리 "" 를 사용해서 문자열의 형태로만 입력가능하다
문자열이지만 내부의 입력 변수는 다양한 데이터 타입으로 받을 수 있다는 차이가 있다
사용 목적에 맞게 변수의 입력 인자를 알맞게 넣어주어야만 한다
변수가 입력 인자보다 적어도 에러는 없지만 변수가 많은데 입력 인자가 적으면 에러가 난다

        //  입력 변수 수가 입력 인자 수 보다 많으면 변수에 할당할 값이 없어 에러가 뜬다

            System.out.printf("%d", 3);         //  3       / 정상 작동
             System.out.printf("%d", 3, k);      //  3       / 정상 작동
            System.out.printf("%d %c", 3);      //    에러!!!
            System.out.printf("%d %c", 3, k);   //  3 k     / 정상 작동  

위에서 사용한 %d 처럼 변수로서 작용하는 것을 서식 지정자(지시자)라고 하며
2진법, 10진법 등의 형식 뿐 아니라 숫자, 문자, boolean 등등 그리고
변수로 사용할 공간의 크기 지정, +-추가 및 공간에서의 왼쪽 오른쪽 정렬 외에도 다양한 방법으로 사용가능하다


서식지정자의 종류


서식 지정자 출력 데이터 형태
%c 하나의 문자
%s 문자열
%d 부호 있는 10진 정수
%i 부호 있는 10진 정수 (%d와 동일)
%f 고정 소수점으로 표현한 실수 (소수점 이하 6자리까지 표현)
%o 부호 없는 8진 정수
%u 부호 없는 10진 정수
%x 부호 없는 16진 정수 (소문자 사용)
%X 부호 없는 16진 정수 (대문자 사용)
%e 부동 소수점으로 표현한 실수 (e-표기법)
%E 부동 소수점으로 표현한 실수 (E-표기법)
%g 값에 따라 %f나 %e를 사용함.
%G 값에 따라 %f나 %E를 사용함.
%% 퍼센트(%) 기호 출력

출력 필드(변수)의 폭 설정 = 변수로 사용할 공간의 크기 지정


서식 지정자의 % 와 타입을 나타내는 영문자 사이에 숫자를 통해서 출력 공간의 크기를 정할수있다
내부 공간에 공백이 있을 시 변수는 오른쪽 정렬이 기본이고 숫자앞에 - 기호를 붙이면 왼쪽 정렬이다
숫자 앞에 +기호를 붙이면 오른쪽 정렬에 양수면 + , 음수면 - 를 붙여서 출력한다
숫자를 소수로 입력 시, 소수부분의 숫자는 출력되는 소숫점 자릿수를 의미한다

출처 : http://www.tcpschool.com/c/c_intro_printf

printf(" %%d를 사용한 결과 : |%d|\n", 123);

printf(" %%7d를 사용한 결과 : |%7d|\n", 123);

printf(" %%+7d를 사용한 결과 : |%+7d|\n", 123);

printf(" %%-7d를 사용한 결과 : |%-7d|\n\n", 123);



printf(" %%f를 사용한 결과 : |%f|\n", 1.23);

printf(" %%.1f를 사용한 결과 : |%.1f|\n", 1.23);

printf(" %%7.2f를 사용한 결과 : |%7.2f|\n", 1.23);

printf("%%+7.2f를 사용한 결과 : |%+7.2f|\n", 1.23);

printf("%%-7.2f를 사용한 결과 : |%-7.2f|\n\n", 1.23);

'개발 노트 > 기초 지식' 카테고리의 다른 글

[java] 메모리 영역  (0) 2022.04.30
[java] 바인딩, 정적 메모리 할당, 동적 메모리 할당  (0) 2022.04.30
[java] final  (0) 2022.04.25
[java] abstract  (0) 2022.04.25
[java] overload, override  (0) 2022.04.25

댓글