[ format() ]
- static 메소드로 인스턴스 없이 사용 가능
- C언어 printf() 와 비슷한 형태로 형식지정자를 사용해서 출력 가능
1. conversion (형식지정자)
여러가지 형식지정자가 있지만 가장 많이 쓰이는 것은 %d(10진수 정수형), %f(실수형), %s(문자열)이 있습니다. 이 외에도 %x(16진수 정수형), %o(8진수 정수형)이 있습니다. C언어와 거의 같습니다. 형식지정자 및 형식지정자와 짝이 맞는 값을 제외하고 다른 옵션은 선택사항입니다.
2. argument_index 옵션 (1$ : 첫번째 인자, 2$ : 두번째 인자...)
원래 순서대로 출력되는데 그 순서를 바꿔서 출력이 가능합니다. 하지만 숫자를 변수로 사용할 수 없기 때문에 어차피 수동으로 코딩해야해서 자주 쓸 일은 없을 것 같습니다.
package study.first;
public class Study {
public static void main(String[] args) {
String a = "abc";
String b = "efg";
System.out.println(String.format("%s %s", a, b)); // "abc efg"
System.out.println(String.format("%2$s %1$s", a, b)); // "efg abc"
}
}
3. width 옵션 (%10s : 10글자로 출력)
출력 길이를 지정해주는 옵션입니다. 가장 사용할 일이 많습니다. 출력할 글자보다 길면 앞을 공백으로 채우고 가장 마지막에 출력해줍니다(우측 정렬). 출력할 글자보다 짧게 지정하면 지정하지 않는 것과 동일합니다.
[ %s, 문자열 ]
원본 문자열 출력의 길이를 제한하고 싶으면 ".길이" 형태로 넣어주면 됩니다. 이 경우 원본 문자열보다 크면 지정하지 않은 것과 동일합니다.
![java.lang.String (문자열) 주요 메소드 [4/4] java.lang.String (문자열) 주요 메소드 [4/4]](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
package study.first;
public class Study {
public static void main(String[] args) {
String a = "abc";
System.out.println(String.format("%10s", a));
System.out.println(String.format("%.1s", a));
System.out.print(String.format("%.10s", a));
System.out.println("끝");
}
}
[ %d, 10진수 정수형 ]
제가 알기로 정수형은 전체 출력 길이 조정만 되고 자를 수가 없습니다. 문자열로 한번 바꿨다가 잘라줘야 할 것 같습니다. 혹시 아시는 분은 댓글 부탁드립니다.
![java.lang.String (문자열) 주요 메소드 [4/4] java.lang.String (문자열) 주요 메소드 [4/4]](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
package study.first;
public class Study {
public static void main(String[] args) {
int a = 123456;
System.out.println(String.format("%10d", a));
System.out.println(String.format("%1s", a));
}
}
[ %f, 실수형 ]
실수형은 전체 크기 지정 및 출력할 소숫점 자리수 조정이 가능합니다. 마지막 소숫점 자리는 그 다음 숫자를 반올림해서 만들어줍니다.
![java.lang.String (문자열) 주요 메소드 [4/4] java.lang.String (문자열) 주요 메소드 [4/4]](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
package study.first;
public class Study {
public static void main(String[] args) {
double a = 12345.00005;
System.out.println(String.format("%20f", a));
System.out.println(String.format("%.4f", a)); // 해당 자릿수까지 출력 (반올림함)
System.out.println(String.format("%20.4f", a));
}
}
4. flag 옵션
플래그 옵션은 width옵션 앞에 들어갑니다. 정렬이나 숫자 단위 표시 등 출력되는 형식을 바꿔줍니다.
[ -, 왼쪽 정렬 ]
기본이 오른쪽 정렬이기 때문에 -를 붙여주면 왼쪽에 먼저 출력 후 공백을 출력해줍니다. 모든 타입 공통입니다.
![java.lang.String (문자열) 주요 메소드 [4/4] java.lang.String (문자열) 주요 메소드 [4/4]](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
package study.first;
public class Study {
public static void main(String[] args) {
String a = "abc";
int b = 12345;
double c = 12345.00005;
System.out.println(String.format("%-10s", a) + "끝");
System.out.println(String.format("%-10d", b) + "끝");
System.out.println(String.format("%-20f", c) + "끝");
}
}
[ 0, 정수 및 실수 공백 대신 0으로 채우기 ]
width를 늘려서 공백이 생긴 앞부분을 0으로 채워줍니다. - flag를 사용해서 왼쪽 정렬시 사용할 수 없습니다. 숫자에서 앞부분을 0으로 채우면 빈칸 대신이라는 구분이 되지만 뒷부분을 0으로 채우면 숫자 자체가 달라질 수 있기 때문입니다. 정수 및 실수에만 사용 가능합니다.
![java.lang.String (문자열) 주요 메소드 [4/4] java.lang.String (문자열) 주요 메소드 [4/4]](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
package study.first;
public class Study {
public static void main(String[] args) {
int b = 12345;
double c = 12345.00005;
System.out.println(String.format("%20d", b) + "끝");
System.out.println(String.format("%20f", c) + "끝");
System.out.println(String.format("%020d", b) + "끝");
System.out.println(String.format("%020f", c) + "끝");
}
}
[ +, 정수 및 실수 부호 표시 ]
부호를 표시해줍니다. 음수일 경우는 원래 부호가 붙기 때문에 똑같지만 양수도 +기호를 붙여줍니다. 역시 숫자 전용입니다. 0 flag와 같이 사용하면 제일 가장 앞에 기호가 붙습니다.
![java.lang.String (문자열) 주요 메소드 [4/4] java.lang.String (문자열) 주요 메소드 [4/4]](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
package study.first;
public class Study {
public static void main(String[] args) {
int b = 12345;
double c = -12345.00005;
System.out.println(String.format("%+20d", b) + "끝");
System.out.println(String.format("%20f", c) + "끝");
System.out.println(String.format("%+020d", b) + "끝");
System.out.println(String.format("%020f", c) + "끝");
}
}
[ (, 정수 및 실수 부호표시 ]
+ 기호와 같은 기능이지만 부호 자체를 표시하지 않고 음수에 괄호 표시를 해줍니다. 주로 회계분야에서 음수를 괄호로 표시합니다.
![java.lang.String (문자열) 주요 메소드 [4/4] java.lang.String (문자열) 주요 메소드 [4/4]](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
package study.first;
public class Study {
public static void main(String[] args) {
int b = 12345;
double c = -12345.00005;
System.out.println(String.format("%-(20d", b) + "끝");
System.out.println(String.format("%-(20f", c) + "끝");
System.out.println(String.format("%(020d", b) + "끝");
System.out.println(String.format("%(020f", c) + "끝");
}
}
[ 콤마(,), 숫자 단위 표시 ]
긴 숫자를 보기 좋게 1000 단위 표시를 해줍니다.
![java.lang.String (문자열) 주요 메소드 [4/4] java.lang.String (문자열) 주요 메소드 [4/4]](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
package study.first;
public class Study {
public static void main(String[] args) {
int b = 12345;
double c = -12345.00005;
System.out.println(String.format("%-,20d", b) + "끝");
System.out.println(String.format("%-,20f", c) + "끝");
System.out.println(String.format("%,(020d", b) + "끝");
System.out.println(String.format("%,(020.1f", c) + "끝");
}
}
'▸JAVA > 라이브러리(API)' 카테고리의 다른 글
java.lang.StringBuilder (문자열) 주요 메소드 [2/2] (2) | 2019.12.10 |
---|---|
java.lang.StringBuilder (문자열) 주요 메소드 [1/2] (2) | 2019.12.10 |
java.lang.String (문자열) 주요 메소드 [3/4] (0) | 2019.12.10 |
java.lang.String (문자열) 주요 메소드 [2/4] (2) | 2019.12.10 |
java.lang.String (문자열) 주요 메소드 [1/4] (3) | 2019.12.10 |
댓글