본문 바로가기
Skill Stacks/Java

[TIL] Java (String.format())

by JayAlex07 2023. 6. 6.

[TIL] Java (String.format())

출처 : 제로베이스 백엔드 스쿨

 

String.format()

 

 

문자열로 포멧을 하여 반환을 하는 것이다

  • %d : 10진수, 정수 형태를 포멧하는 것이
  • %s : 문자열을 포멧하는 것이고, 숫자를 입력할 경우, 그만큼 빈 공간을 추가해준다
  • %f : float 숫자를 문자열 형태로 포멧을 할 수 있다
  • %t : 날짜시간 형식을 문자열 형태로 포멧할 수 있다
  • %c : 유니코드 문자 형식을 문자열 형태로 포멧할 수 있다
  • %o, %x : 8진수, 16진수를 문자열 형태로 포멧하는 것이다
int num = 12;

System.out.println(String.format("%d", num));
// output : 12

System.out.println(String.format("%04d", num));
// output : 0012

System.out.println(String.format("%d____", num));
// output : 12____

System.out.println(String.format("%d04", num));
// output : 1204

System.out.println(String.format("%dd", num));
// output : 12d

System.out.println(String.format("%daaaa____", num));
// output : 12aaaa____

System.out.println(String.format("%d!!&#*&", num));
// output : 12!!&#*&

System.out.println(String.format("654d", num));
// output : 654d
  • "%04d" : 해당 숫자가 4자리 수가 아니면, 앞에 0을 4자리 수가 만들어 질만큼 채워 준다

 

%s

String str = "hello";

System.out.println(String.format("%s", str));
// output : hello

System.out.println(String.format("%4s", str));
// output :     hello

System.out.println(String.format("%s____", str));
// output : hello____

System.out.println(String.format("%s04", str));
// output : hello04

System.out.println(String.format("%ss", str));
// output : hellos

System.out.println(String.format("%saaaa____", str));
// output : helloaaaa____

System.out.println(String.format("%s!!&#*&", str));
// output : hello!!&#*&
  • "%04s" : 이 형식은 문자열에서는 에러가 뜬다

 

 

%f

double num = 12345.6789;

System.out.println(String.format("%f", num));
// output : 12345.678900

System.out.println(String.format("%.1f", num));
// output : 12345.7

System.out.println(String.format("%.2f__", num));
// output : 12345.68__

System.out.println(String.format("%015.2f__", num));
// output : 000000012345.68__

System.out.println(String.format("%f04", num));
// output : 12345.67890004
  • 기본을 소수 6자리 수까지 출력을 해준다
  • "%.1f" : 소수 1번째 자리 수까지 출력해준다
  • "%015.2f__" : 소수 2번째 자리 수까지 출력해주지만, 총 자리 수가 15개가 안 되면, 앞에 0으로 채워준다

 

 

%t

  • 날짜, 시간은 뒤에 추가로 알파벳을 붙여야 한다
Date date = new Date();

System.out.println(String.format("년도월일 : %tF", date));
// output - 년도월일 : 2023-06-02

System.out.println(String.format("연도 : %tY", date));
// output - 연도 : 2023

System.out.println(String.format("월 : %tm", date));
// output - 월 : 06

System.out.println(String.format("월 : %tB", date));
// output - 초 : 6월

System.out.println(String.format("일 : %td", date));
// output - 일 : 02

System.out.println(String.format("시간 : %tT", date));
// output - 시간 : 11:22:34

System.out.println(String.format("시 : %tH", date));
// output - 시 : 11

System.out.println(String.format("분 : %tM", date));
// output - 분 : 22

System.out.println(String.format("초 : %tS", date));
// output - 초 : 34

 

 

%c

  • 숫자를 유니코드로 반환
System.out.println(String.format("48 → %c, 57 → %c", 48, 57));
// ouput : 48 → 0, 57 → 9

System.out.println(String.format("65 → %c, 90 → %c", 65, 90));
// ouput : 65 → A, 90 → Z

System.out.println(String.format("97 → %c, 122 → %c", 97, 122));
// ouput : 97 → a, 122 → z

 

 

%s, %o, %h, %x

int num = 217;

System.out.println(String.format("10진수 : %d" ,num));
// ouput - 10진수 : 217

System.out.println(String.format("2진수 : %s" , Integer.toBinaryString(num)));
// ouput - 2진수 : 11011001

System.out.println(String.format("8진수 : %o" ,num));
// ouput - 8진수 : 331

System.out.println(String.format("16진수 : %h" ,num));
// ouput - 16진수 : d9

System.out.println(String.format("16진수 : %x" ,num));
// ouput - 16진수 : d9

 

참고

  • % 다음에 숫자가 오면 출력될 자릿수를 지정
  • % 다음에 마이너스 (-) 가 오면 왼쪽 정렬을 하여 출력
  • %a.b 라는 실수가 오면
    • a는 소수점 이하의 숫자까지 포함해 출력될 최소 자릿수
    • b는 소수점 이하 자릿수
  • %% 을 이용하여 (%)를 표현할 수 있다
  • \t 은 tab의 기능인데, 어느정도 간격을 맞출 때에 사용하면 좋은 기능이다!

'Skill Stacks > Java' 카테고리의 다른 글

[TIL] Java (LocalDate)  (0) 2023.06.08
[TIL] Java (random number)  (0) 2023.06.07
19. Java 클래스 (추상 클래스, 인터페이스)  (0) 2023.06.05
18. Java 클래스 (속성)  (0) 2023.06.02
17. Java Array, ArrayList  (0) 2023.05.31