개요
String 클래스에는 문자열에 사용할 수 있는 내장 메서드가 있는데, 이를 활용해보자.
String.format()
- 불필요한 문자열 결합없이 `가독성`을 높여 원하는 형태로 formatting된 `하나의 문자열`로 출력이 가능하다.
- `%`를 붙여 지정된 서식에 따라 작성하면 된다.
- flag(0/-/+) 조건을 설정하여 공백을 채울 수 있다.
아래 사진은 format에 지정할 수 있는 주요 서식입니다. (하단 관련 링크 참고해서 필요하실때마다 사용하시기 바랍니다)
실습
String itemName = "바나나";
int price = 4000;
int quantity = 1;
System.out.println("구입 상품 : " + itemName + ", 가격 : " + price + ", 수량 : " + quantity); // 문자열 단순 결합
System.out.println(String.format("구입 상품 : %s, 가격 : %d, 수량 : %d", itemName, price, quantity)); // String format
// flag 사용하여 공백 채우기
int num = 123;
System.out.println(String.format("%5d", num)); // 우측정렬, 공백 유지
System.out.println(String.format("%-5d", num)); // 왼쪽정렬, 공백 유지
System.out.println(String.format("%05d", num)); // 우측정렬, 공백 -> 0 채움
System.out.println(String.format("%+5d", num)); // 부호 출력
출력값
구입 상품 : 바나나, 가격 : 4000, 수량 : 1
구입 상품 : 바나나, 가격 : 4000, 수량 : 1
123
123
00123
+123
어떻게 활용이 가능할까?
3단 구구단을 출력하는 프로그램이 있다고 가정해보자.
문자열 단순 결합 Vs. String.format()를 적용한 코드를 비교해보자.
// 3단 구구단 출력
for (int i = 1; i < 3; i++) {
for (int j = 1; j < 10; j++) {
System.out.println(i + " x " + j + " = " + i * j);
}
System.out.println();
}
System.out.println("== String.format ==");
for (int i = 1; i < 3; i++) {
for (int j = 1; j < 10; j++) {
System.out.println(String.format("%02d x %02d = %02d", i, j, i * j));
}
System.out.println();
}
1 x 1 = 1
1 x 2 = 2
...
1 x 8 = 8
1 x 9 = 9
2 x 1 = 2
2 x 2 = 4
...
2 x 8 = 16
2 x 9 = 18
== String.format ==
01 x 01 = 01
01 x 02 = 02
...
01 x 08 = 08
01 x 09 = 09
02 x 01 = 02
02 x 02 = 04
...
02 x 08 = 16
02 x 09 = 18
관련 링크(Related Links)
'Java' 카테고리의 다른 글
[Java8] Functional Interface 알아보기 (+ 기본형 특화 인터페이스) (0) | 2024.04.21 |
---|---|
[기초문법] Java8 Stream 적용/미적용 실습해보기 (0) | 2024.01.16 |
Builder패턴을 사용하는 이유 (0) | 2024.01.10 |
scanner 사용시 입력 버퍼 비우기 (0) | 2023.12.05 |
자바 메모리 구조 (0) | 2023.12.02 |