System.out.println(10.0/3); // 3.3333333333333335
System.out.printf("%.2f", 10.0/3); // 3.33
System.out.println(0x1A); // 26(10진수로 출력됨)
System.out.printf("%d", 0x1A) // 26 (10진수)
System.out.printf("%X", 0x1A) // 1A (16진수)
전체 출력 자릿수 및 소수 자릿수를 제한할 수 있으며, 여러 형식을 지정할 수 있다.
코드
System.out.printf("형식문자열", 값1, 값2, ...)
형식 문자열에 들어갈 내용
%[argument_index$] [flags] [width] [.precision] conversion
% (값의 순번) / (-,0) / (전체 자릿수) / (소수 자릿수) / (반환 문자)
public class Main {
public static void main(String[] args) {
System.out.printf("%3$s, %2$s, and %1$s", "A", "B", "C"); // C, B, and A
}
}
- : left-justify ( default is to right-justify ) (왼쪽 정렬)
+ : output a plus ( + ) or minus ( - ) sign for a numerical value (양수, 음수 부호 나타냄)
0 : forces numerical values to be zero-padded ( default is blank padding ) (공백을 0으로 채움)
, : comma grouping separator (for numbers > 1000) (1,000,000~)
: space will display a minus sign if the number is negative or a space if it is positive (음수일 때 부호 나타냄)
Conversion-Characters
:
%d : decimal integer [byte, short, int, long]
%f : floating-point number [float, double]
%c : character Capital C will uppercase the letter
%s : String Capital S will uppercase all the letters in the string
%h : hashcode A hashcode is like an address. This is useful for printing a reference
%n : newline Platform specific newline character- use %n instead of \n for greater compatibility
System.out.printf("Total is: $%,.2f%n", dblTotal);
System.out.printf("Total: %-10.2f: ", dblTotal);
System.out.printf("% 4d", intValue);
System.out.printf("%20.10s\n", stringVal);
String s = "Hello World";
System.out.printf("The String object %s is at hash code %h%n", s, s);
String class format( ) method:
형식화한 문자열을 만들거나 변수에 할당할 때 String class의 format() method를 사용할 수 있다.
사용 방법은 printf()
에서와 동일하다.
format() method는 String에 대한 reference를 반환한다.
Example:
String grandTotal = String.format("Grand Total: %.2f", dblTotal)
참고 : java_printf_quick_reference
public class PrintEx2 {
public static void main(String[] args) {
System.out.printf("[%5d]%n", 10);
System.out.printf("[%5d]%n", 1234567); // 잘리지 않고 그대로 출력됨
System.out.printf("[%-5d]%n", 10);
System.out.printf("[%05d]%n", 10);
double d = 1.23456789;
System.out.printf("%.6f%n", d);
System.out.printf("%14.10f%n", d);
System.out.printf("[%s]%n", "www.codechobo.com");
System.out.printf("[%20s]%n", "www.codechobo.com");
System.out.printf("[%-20s]%n", "www.codechobo.com");
System.out.printf("[%.10s]%n", "www.codechobo.com"); // 잘려서 출력됨
}
}
[ 10]
[1234567]
[10 ]
[00010]
1.234568
1.2345678900
[www.codechobo.com]
[ www.codechobo.com]
[www.codechobo.com ]
[www.codech]