public static void main(String[] args) {
//서식지정자를 이용한 출력 (Format Specifiers)
int i = 236;
float z = 16f;
char c = 'K';
char d = 'I';
char e = 'M';
String s = "KIM";
float f = 3.14f;
double g = 3.141592d;
System.out.printf("i를 10진수로 출력 : %d\n", i); //printf는 형식을 나타내는 문자
// %d 는 decimal =10진수 \n은 출력 후 엔터
// %d같은 형식이 n개 들어가면 ,i같은 값이 n개 만큼 들어가야한다
System.out.printf("i를 참/거짓 출력 : %b\n", i); //%b = bit ,boolean
System.out.printf("i를 8진수로 : %o\n", i); //%o otal 8진수
System.out.printf("i를 16진수로 : %x\n",i); // %X를 대문자로 넣을경우 EC가 대문자로나옴
System.out.printf("i를 16진수로 : %X\n",i); // heX 16진수
// System.out.printf("i를 지수 형태로 출력 : %e \n",i ); // i가 정수라 실수로 불가
System.out.printf("16.000000을 지수 형태로 출력 : %e \n",z );
//
System.out.printf("%c %c %c\n" , c,d,e);
System.out.printf("문자열 : %s\n", s);
System.out.printf("실수 : %f\n" , f);
System.out.printf("실수2 : %f\n" , g);
}
}
출력결과
i를 10진수로 출력 : 236
i를 참/거짓 출력 : true
i를 8진수로 : 354
i를 16진수로 : ec
i를 16진수로 : EC
16.000000을 지수 형태로 출력 : 1.600000e+01
K I M
문자열 : KIM
실수 : 3.140000
실수2 : 3.141592
i를 참/거짓 출력 : true
i를 8진수로 : 354
i를 16진수로 : ec
i를 16진수로 : EC
16.000000을 지수 형태로 출력 : 1.600000e+01
K I M
문자열 : KIM
실수 : 3.140000
실수2 : 3.141592
public static void main(String[] args) {
//정수, 문자열, 실수 지시자 세부적으로 출력 지시(제어)
int d =1234;
double f =2345.123456789d;
String s = "I\'m a Boy";
System.out.printf("%6d", d); //왼쪽 2칸 ,즉 자리수가 6보다 작으면 왼쪽에 남은 자리수만큼 채움
System.out.printf("%-6d",d); //오른쪽 2칸
System.out.printf("%d\n", d); //그대로 출력
System.out.printf("%06d\n\n",d); // 남는 자리수만큼 0으로 채운다
// System.out.printf("%.2d\n",d); 불가
System.out.printf("%f\n",f); //f값 출력(기본값 , 소수점6자리)
System.out.printf("%15f\n",f); //소수점 포함 11글자라 앞에 4칸띄움
System.out.printf("%.8f\n",f); //마지막 자리수 반올림해서 소수점 8번째까지 출력
System.out.printf("%11.4f\n\n",f); // 마지막수 반올림해서 소수점 4번째까지 출력
//9글자라 남은자리수 공백 2칸 채움
System.out.printf("%s\n",s); //s값 출력
System.out.printf("%15s\n",s); //6 i'm a boy 의 띄어쓰기포함 9글자 제외한 6글자만큼 앞에 공백채움
System.out.printf("%-6s\n",s);// 총 글자수가 6글자가 넘어가니 뒤에 공백을 채우지않고 그냥 출력
// 즉, 앞에붙는 15,6 등은 글자수를 제한하는게 아닌
// 이 숫자보다 출력하는 글자수가 적으면 그것을 공백으로 채워넣어라 라는 의미이다
}
}
출력값
12341234 1234
001234
2345.123457
2345.123457
2345.12345679
2345.1235
I'm a Boy
I'm a Boy
I'm a Boy