java 에서 다양한 format 을 설정하는 Util 을 제공한다.
그중에서 String 의 format 을 살펴보도록 하자.
예시)
String str = String.format("p1 : %s , p2 : %.2f", "one", 1.234f); // String format 으로 변경된 값을 str 변수에 바인딩
System.out.println(str);
또는
System.out.printf("p1 : %s , p2 : %.2f", "one", 1.234f); // 화면에 바로 출력
결과) 두개의 결과는 다음과 같이 같게 나온다.
p1 : one , p2 : 1.23
p1 : one , p2 : 1.23
원리)
이런 식으로 해당 부분에 값이 원하는 포맷형태로 변경되에 바뀌게 된다.
%s 는 스트링, %d 는 숫자, %f 는 실수 대한 변경이다.
스트링의 %s 의 대표적인 기능 및 예시는 다음과 같다.
항목 |
내용 |
결과 |
%s |
해당 위치의 스트링을 대체한다. |
"one" ▼ "one" |
%10s |
숫자(10)만큼 문자열 좌측(+)에 공백을 채워 문자열 길이를 만든다.(숫자보다 문자열길이가 긴경우에는 그대로 도시된다) |
"one" ▼ (_ 는 공백) "_______one" |
%-10s |
숫자(10)만큼 문자열 우측(-)에 공백을 채워 문자열 길이를 만든다.(숫자보다 문자열길이가 긴경우에는 그대로 도시된다) |
"one" ▼ (_ 는 공백) "one_______" |
%10.2s |
점(.)우측에 해당하는 숫자(2) 만큼 스트링을 자른 후 점(.)좌측 숫자(10)만큼 문자열 좌측에 공백을 채워 문자열 길이를 만든다. |
"one" ▼ (_ 는 공백) "________on" |
%-10.2s |
점(.)우측에 해당하는 숫자(2) 만큼 스트링을 자른 후 점(.)좌측 숫자(10)만큼 문자열 우측에 공백을 채워 문자열 길이를 만든다. |
"one" ▼ (_ 는 공백) "on________" |
스트링의 %d 의 대표적인 기능 및 예시는 다음과 같다.
항목 | 내용 | 결과 |
%d | 해당 위치의 숫자로 대체한다. | 123 ▼ 123 |
%10d | 숫자(10)만큼 문자열 좌측(+)에 공백을 채워 숫자열(123) 길이를 만든다.(숫자보다 숫자열길이가 긴경우에는 그대로 도시된다) | 123 ▼ (_ 는 공백) _______123 |
%-10d | 숫자(10)만큼 문자열 우측(-)에 공백을 채워 숫자열(123) 길이를 만든다.(숫자보다 숫자열길이가 긴경우에는 그대로 도시된다) | 123 ▼ (_ 는 공백) 123_______ |
%010d | 숫자(10)만큼 문자열 좌측(+)에 0을 채워 숫자열(123) 길이를 만든다.(숫자보다 숫자열길이가 긴경우에는 그대로 도시된다) | 123 ▼ 0000000123 |
%,d | 1000 단위로 콤마(,) 처리를 한다. | 1234567 ▼ 1,234,567 |
스트링의 %f 의 대표적인 기능 및 예시는 다음과 같다.
항목 | 내용 | 결과 |
%f | 해당 위치의 숫자로 대체한다. 정수일 경우에는 정수만 나오며, 실수는 소숫점 6자리(기본)까지 포함한다. | 123f ▼ 123.000000 123 ▼ (정수형) 123 |
%12f | 숫자(12)만큼 문자열 좌측(+)에 공백을 채워 숫자열(123)과 소숫점이하 자리를 포함하여 길이를 만든다.(숫소숫점 이하를 포함한 길이가 설정한 숫자열길이가 긴경우에는 그대로 도시된다) | 123f ▼ __123.000000 |
%-12f | 숫자(12)만큼 문자열 우측(-)에 공백을 채워 숫자열(123)과 소숫점이하 자리를 포함하여 길이를 만든다.(소숫점 이하를 포함한 길이가 설정한 숫자열길이가 긴경우에는 그대로 도시된다) | 123f ▼ 123.000000__ |
%.2f | 점(.)우측에 해당하는 숫자(2) 만큼 소숫점이하(.456) 자리를 반올림하여 길이를 만든다. | 123.456f ▼ 123.46 |
%010.2f | 숫자(10)만큼 문자열 좌측(+)에 0을 채우고 점(.)우측에 해당하는 숫자만큼 소숫점 이하의 숫자를 자른다.(자른 부분은 반올림한며, 소숫점을 자를 부분을 설정하지 않으면 소숫점의 점을 포함한 숫자만큼 0을 채워 길이를 만든다. 숫자값은 달라질 수 있다) | 123.456f ▼(반올림) 0000123.46 |
%,.2f | 1000 단위로 콤마(,) 처리를 하고, 점(.)우측에 해당하는 숫자(2) 만큼 소숫점이하(.456) 자리를 반올림하여 길이를 만든다. | 1234.567f ▼ 1,234.57 |
기타 시간 %t
항목 |
내용 |
결과 |
%td |
java.util.Date 를 입력받으며 오늘 일자(day)를 제공 |
new Date() ▼ (오늘 일자 day) 08 |
%tm |
java.util.Date 를 입력받으며 이번 달(month)를 제공 |
new Date() ▼ (이번 달 month) 12 |
%th |
long 형 시간데이터를 입력받으며 이번 달(month)를 제공 |
new Date().getTime() or System.currentTimeMillis() (long 형의 시간 데이터) ▼ (이번 달 month) 12월 |
%ty |
java.util.Date 를 입력받으며 이번 약년(year)를 제공 |
new Date() ▼ (이번 해 year) 14 |
%tD |
java.util.Date 를 입력받으며 오늘 날짜(월/일/약년)를 제공 |
new Date() ▼ (오늘날짜 date 월/일/년) 12/08/14 |
%tY |
java.util.Date 를 입력받으며 오늘 년을 제공 |
new Date() ▼ (이번 해 year) 2014 |
%tF |
java.util.Date 를 입력받으며 오늘 날짜(월/일/년)를 제공 |
new Date() ▼ (오늘날짜 full) 2014-12-08 |
%tT |
long 형 시간데이터를 입력받으며 현재시간(시:분:초)를 제공 |
new Date().getTime() or System.currentTimeMillis() (long 형의 시간 데이터) ▼ (date의 시간 or 현재시간) 15:19:50 |
%tH |
long 형 시간데이터를 입력받으며 시간(24시간 단위)을 제공 |
new Date().getTime() or System.currentTimeMillis() (long 형의 시간 데이터) ▼ (date의 시간) 15 |
%tl |
long 형 시간데이터를 입력받으며 시간(12시간 단위)을 제공 |
new Date().getTime() or System.currentTimeMillis() (long 형의 시간 데이터) ▼ (date의 시간 12시간단위) 3 |
%tM |
long 형 시간데이터를 입력받으며 분을 제공 |
new Date().getTime() or System.currentTimeMillis() (long 형의 시간 데이터) ▼ (date의 분 Minute) 32 |
%tS |
long 형 시간데이터를 입력받으며 초를 제공 |
new Date().getTime() or System.currentTimeMillis() (long 형의 시간 데이터) ▼ (date의 초) 52 |
%tL |
long 형 시간데이터를 입력받으며 밀리세컨(1000분의 1초)를 제공 |
new Date().getTime() or System.currentTimeMillis() (long 형의 시간 데이터) ▼ (date의 1000분의1초) 932 |
string format 에서 원하는 위치의 파라미터값을 가져다 쓰기 위해서는(같은 파라미터 여러번 가능) 다음과 같다
* syntax
%숫자(1부터시작)$타입
* 예시
System.out.printf("%2$s %1$s","1","2");
System.out.println();
System.out.printf("%1$tY.%1$tm.%1$td %1$tH:%1$tM:%1$tS.%1$tL",new Date().getTime());
* 결과
2 1
2014.12.08 15:46:16.270
기타 상세한 내용은 formatter 의 api 로 확인 가능하다.
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html#syntax
'IT > java' 카테고리의 다른 글
브라우져에 파라미터 던져 도시하기 (0) | 2015.04.08 |
---|