728x90
String.format() - 문자열 형식 지정
Java 5 이상 부터 사용가능String.format()
메소드를 사용하면 C 언어의 printf
함수처럼 서식 문자열을 사용한 형식 문자열을 만들 수 있다
Java API Doc
String.Format()
: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#format(java.lang.String,%20java.lang.Object...)- Format String Syntax: http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax
format에 지정할 수 있는 주요 서식 ( %
문자와 조합하여 사용 )
서식 | 분류 | 설명 |
---|---|---|
b 또는 B | 참 거짓 | boolean 값 지정 |
h 또는 H | 16진수 | 16진수를 지정 |
s 또는 S | 문자열 | 문자열을 지정 |
c 또는 C | 문자 | 문자를 지정 |
d | 정수 | 10진 정수로 표시 |
o | 정수 | 8진 정수로 표시 |
x 또는 X | 정수 | 16진 정수 표시 |
e 또는 E | 부동 소수점 | 부동 소수점 10진수로 표시 (가수와 지수로 표현) |
f | 부동 소수점 | 부동 소수점 10진수로 표시 |
g 또는 G | 부동 소수점 | 부동 소수점 10진수로 표시 (반올림 되어 표시) |
a 또는 A | 부동 소수점 | 부동 소수점 16진수로 표시 (가수와 지수로 표현) |
t 또는 T | 날짜, 시간 | 날짜와 시간 서식문자 앞에 지정 ( %tH, %tM, %tS ...) |
B | 날짜 | 국가 고유 월의 완전한 이름 ( January 등 ) |
A | 날짜 | 국가 고유 요일의 완전한 이름 ( Sunday 등 ) |
Y | 날짜 | 년 (4자리) |
y | 날짜 | 년 (2자리) |
j | 날짜 | Day of year ( 001 - 366 ) |
m | 날짜 | 월 ( 01 - 13 ) |
d | 날짜 | 일 ( 01 - 31) |
e | 날짜 | 일 ( 1 - 31) |
H | 시간 | 시, 24시간제 ( 00 - 23 ) |
I | 시간 | 시, 12시간제 ( 01 - 12 ) |
k | 시간 | 시, 24시간제 ( 0 - 23 ) |
l | 시간 | 시, 12시간제 ( 1 - 12 ) |
M | 시간 | 분 |
S | 시간 | 초 |
% | 퍼센트 | 퍼센트를 표시 |
n | 개행 | 개행문자를 표시 |
아규먼트 인덱스(argument index)
- 아라비아 숫자 와$ 문자로 구성 ( 첫번째 인수는 1$, 2번째 인수는 2$와 같이 )
- ex)
String.format("%2$d년 %3$d월 %1$일",1, 1919,3);
// =?> 1919년 3월 1일 출력
- ex)
- '<' 사용하면 직전의 인수를 지정할 수 있다
import java.util.Date;
public class StringFormatSample {
public static void main(String[] args) {
String str = "freelife";
boolean bol = true;
int i = 127;
Date now = new Date();
String result1 = String.format("문자열 서식: %s, %S", str, str);
System.out.println(result1); // 문자열 서식: freelife, FREELIFE
String result2 = String.format("boolean 서식 문자열: %B, %b", bol, bol);
System.out.println(result2); // boolean 서식 문자열: TRUE, true
String result3 = String.format("정수 서식: %d, %o, %x, %05d", i, i, i, i);
System.out.println(result3); // 정수 서식: 127, 177, 7f, 00127
// 4번째는 5자릿수로 0을 채움
// 부동 소수점, %1$ 등으로 절대 인수 인덱스를 지정
String result4 = String.format("부동 소수점 서식: %4$e, %3$f, %2$g, %1$a", 127.01, 127.02, 127.03, 127.04);
System.out.println(result4); // 부동 소수점 서식: 1.270400e+02, 127.030000, 127.020, 0x1.fc0a3d70a3d71p6
// 날짜, $< 로 상대 인덱스를 지정하고 직전의 인수와 같은 것을 이요
String result5 = String.format("날짜,시간 서식: %tY년 %<tm월 %<td일 %<tH시 %<tM분 %<tS초", now);
System.out.println(result5); // 날짜,시간 서식: 2020년 08월 23일 14시 55분 55초
}
}
문자열 서식: freelife, FREELIFE
boolean 서식 문자열: TRUE, true
정수 서식: 127, 177, 7f, 00127
부동 소수점 서식: 1.270400ㄷ+02, 127.030000, 127.020, 0x1.fc0a3d70a3d71p6
날짜,시간 서식: 2020년 08월 23일 14시 55분 55초
728x90
댓글