printf()는 '지시자'를 통해 변수의 값을 여러가지 형식으로 변환하여 출력하는 기능을 갖고 있다.
System.out.printf("age:%d year: %d", 14, 2021);
printf()는 출력 후 줄바꿈을 안한다. 줄바꿈을 넣어주려면 %n을 추가해준다.
printf() 지시자 중 자주 사용되는 것들
지시자 | 설명 |
%b | 불리언(boolean)형식으로 출력 |
%d | 10진(demical) 정수 형식으로 출력 |
%o | 8진(octal) 정수 형식으로 출력 |
%x, %X | 16진(hexa-demical) 형식으로 출력 |
%f | 부동 소수점(floating point)형식으로 출력 |
%e, %E | 지수(exponent) 표현식의 형식으로 출력 |
%c | 문자(character)로 출력 |
%s | 문자열(string)로 출력 |
public class PrintfEx {
public static void main(String[] args) {
System.out.println(10.0 / 3);
System.out.printf("%d%n", 15);
System.out.printf("%#o%n", 15); // 8진수 접두사 붙이기
System.out.printf("%#x%n", 15); // 16진수 접두사 붙이기
System.out.printf("%d%n", 15);
System.out.printf("%s%n", Integer.toBinaryString(15));
// 10진수를 2진 문자열로 바꿔줌
float f = 123.456789f;
System.out.printf("%f%n", f);
// 정밀도 7자리
double d = 123.456789;
System.out.printf("%f%n", d);
// double 은 정밀도 15자리니까 9자리 충분함
System.out.printf("%e%n", d);
System.out.printf("%g%n", d); // 소수점 포함해서 7자리로 표현
System.out.printf("[%5d]%n", 10);
System.out.printf("[%-5d]%n", 10);
System.out.printf("[%05d]%n", 10); // 0을 공백 채움
System.out.printf("[%5d]%n", 1234567); // 5자리만 지정해도 다 출력
double i = 1.23456789;
System.out.printf("%14.10f%n", i); // 전체 14자리에 소수점아래10자리
System.out.printf("%14.6f%n", i); // 전체 14자리에 소수점아래6자리. 마지막 숫자는 반올림
System.out.printf("%.6f%n", i); // 소수점아래6자리. 마지막 숫자는 반올림
System.out.printf("[%s]%n", "www.codechobo.com");
System.out.printf("[%20s]%n", "www.codechobo.com"); // 오른쪽 정렬
System.out.printf("[%.10s]%n", "www.codechobo.com"); // 오른쪽 정렬
}
}
지시자 '%x' 와'%o' 에 '#'를 사용하면 접두사 '0x'와 '0'이 각각 붙는다. 그리고 '%X'는 16진수에 사용되는 접두사와 영문자를 대문자로 출력한다.
10진수를 2진수로 출력해주는 지시자는 없기 때문에 정수를 2진 문자열로 변환해주는 Integer.toBinaryString(int i)를 사용해야한다. 이 메서드는 정수를 2진수로 변환해서 문자열로 반환하므로 지시자 %s를 사용했다.
char 타입의 값을 int타입으로 형변환해야 '%d'로 출력할 수 있다.
%f 는 소수점 아래 6자리까지만 출력하기 때문에 소수점 아래 7자리에서 반올림한다. 그래서 123.457로 출력
지정된 숫자보다 문자열의 길이가 작으면 빈 자리는 공백을 출력.
공백이 있으면 기본적으로 우측 정렬, - 를 붙이면 좌측 정렬
.을 붙이면 문자열의 일부만 출력 가능 www.codech
'JAVA > 변수 Variable' 카테고리의 다른 글
[JAVA] 형변환(casting) (0) | 2021.06.06 |
---|---|
[JAVA] 화면에서 입력받기 -Scanner (0) | 2021.06.06 |
[JAVA] 상수와 리터럴(constant&literal) (0) | 2021.06.06 |
[JAVA] 기본형(primitive type) (0) | 2021.06.06 |
[JAVA] 변수의 타입 (0) | 2021.06.06 |