Java

Java String format 함수를 활용해보자

chandlerxx 2024. 3. 5. 13:13

개요

String 클래스에는 문자열에 사용할 수 있는 내장 메서드가 있는데, 이를 활용해보자.

 

String.format()

  • 불필요한 문자열 결합없이 `가독성`을 높여 원하는 형태로 formatting된 `하나의 문자열`로 출력이 가능하다.
  • `%`를 붙여 지정된 서식에 따라 작성하면 된다.
  • flag(0/-/+) 조건을 설정하여 공백을 채울 수 있다.

 

아래 사진은 format에 지정할 수 있는 주요 서식입니다. (하단 관련 링크 참고해서 필요하실때마다 사용하시기 바랍니다)

api 공식문서

 

실습

 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)