Java

[Java] String format을 사용해 출력하기

mopipi 2024. 5. 2. 13:45
반응형

Java의 String format이란?

 printf() 메소드에서 사용하며, String 클래스의 static 메소드 중 하나이다.

 문자열의 형식을 설정하며, C언어의 printf() 처럼 형식을 지정해 출력할 수 있게 한다.

 

종류

1. "%d" :  정수(int)를 출력

  • 문자열 길이 고정 : 상수 + d 조합
    • "%5d" : 길이 5 고정, 숫자 오른쪽부터 채워짐
    • "%-5d" : 길이 5 고정, 숫자 왼쪽부터 채워짐
    • "%05d" : 길이 5 고정, 여백 대신 특정 숫자(0)가 채워짐
  • 숫자를 끊어서 표현하고 싶은 경우 
    • "%,d_" : 디폴트, 3자리씩 끊음
System.out.printf("%5d_", 1); // □□□□1_
System.out.printf("%-5d_", 1); //1□□□□_
System.out.printf("%05d_", 1); //00001_

2. "%s" : 문자열(String)을 출력

  • 문자열 길이 고정 : 상수 + s 조합
    • "%5s" : 길이 5 고정, 오른쪽 정렬
    • "%-5s" : 길이 5 고정, 왼쪽 정렬
    • "%.2s" : 문자열 중 앞 2글자만 출력
    • "%-12.2s" : 길이 12로 고정하되, 문자열 s에서 2글자만 출력 후 나머지는 공백으로 할당 + 왼쪽 정렬
String str = "Hello";
System.out.printf("%10s_", str);   //     Hello_
System.out.printf("%-10s_", str);  //Hello     _
System.out.printf("%.3s_", str);   //Hel_
System.out.printf("%-10.3s_", str);//Hel       _
System.out.printf("%10.3s_", str); //       Hel_

3. "%f" : 실수형(double, float) 출력

  • 기본적으로 소수 부분은 6자리 출력 (빈칸은 0으로 채워서)
  • "%.3f" : 소수점 3번째 자리 수 까지 나타내되, 4번째 자리에서 반올림한 뒤 나타냄!! 
double n = 123.45678;

System.out.printf("%f_", 1.2);    //1.200000_
System.out.printf("%12f_", n);    //  123.456780_
System.out.printf("%-12f_", n);   //123.456780  _ (빈칸 2 + 숫자 10)
System.out.printf("%.3f_", n);    //123.457_ (** 4번째 자리에서 반올림)
System.out.printf("%12.2f_", n);  //      123.46_
System.out.printf("%-12.2f_", n); //123.46      _
System.out.printf("%012.2f_", n); //000000123.46_

 

+ 그외에도 8진수는 "%o", 16진수는 "%x"로 나타낼 수 있다.

 

참고

https://blog.jiniworld.me/68

반응형