BackEnd🌱/Java

[Java] String format() method

dkswnkk 2022. 5. 14. 18:04

String format() method

java string format() λ©”μ„œλ“œλŠ” μ§€μ •λœ Locale, format 및 arguments둜 ν˜•μ‹μ΄ μ§€μ •λœ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€. String.format() λ©”μ„œλ“œμ—μ„œ Locale(κ΅­κ°€)을 μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ Locale.getDefault() λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜μ—¬ κΈ°λ³Έ Locale을 μ‚¬μš©ν•©λ‹ˆλ‹€.

Javaμ—μ„œμ˜ format() λ©”μ„œλ“œλŠ” C μ–Έμ–΄μ˜ printf() ν•¨μˆ˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

μ„ΈλΆ€ κ΅¬ν˜„ 

String format() λ©”μ„œλ“œμ˜ μ„ΈλΆ€ κ΅¬ν˜„μ€ μ•„λž˜μ™€ κ°™μœΌλ©°, 두 가지 μœ ν˜•μ΄ μžˆμŠ΅λ‹ˆλ‹€.

public static String format(String format, Object... args) {
        return new Formatter().format(format, args).toString();
    }

   
public static String format(Locale l, String format, Object... args) {
    	return new Formatter(l).format(format, args).toString();
    }

 

λ§€κ°œλ³€μˆ˜

  • Locale: format() λ©”μ„œλ“œμ— μ μš©ν•  κ΅­κ°€λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.
  • format: λ¬Έμžμ—΄μ˜ ν˜•μ‹ 즉, μ •μˆ˜μΈμ§€ μ†Œμˆ˜μΈμ§€ 등을 μ˜λ―Έν•©λ‹ˆλ‹€.
  • args: ν˜•μ‹ λ¬Έμžμ—΄μ— λŒ€ν•œ μΈμˆ˜λ‘œμ„œ, 0 이상일 수 μžˆμŠ΅λ‹ˆλ‹€.

두 가지 μœ ν˜•μ€ Locale을 지정해주고 μ•ˆ ν•΄μ£Όκ³ μ˜ 차이인데, Locale을 μ§€μ •ν•˜λŠ” κ²½μš°λŠ” μ•„λž˜μ™€ 같은 ν˜•μ‹μœΌλ‘œ μ΄μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

String str = String.format( Locale.KOREA, "test %f", 12.123f );

Locale을 μ§€μ •ν•΄μ£ΌλŠ” μœ ν˜•μ˜ 경우 아직 λ°±μ—”λ“œ κ°œλ°œμ—μ„œλŠ” κ²ͺμ–΄ 보지 λͺ»ν–ˆμ§€λ§Œ μ•ˆλ“œλ‘œμ΄λ“œ κ°œλ°œμ—μ„œ μœ„λ„, 경도λ₯Ό 뢈러올 λ•Œ Locale을 지정해 주지 μ•Šμ•˜μ„ λ•Œ λ¬Έμ œκ°€ λ°œμƒν•œλ‹€κ³  ν•©λ‹ˆλ‹€.

 

μ˜ˆμ™Έ

  • NullPointerException: ν˜•μ‹μ΄ null일 경우.
  • IllegalFormatException: ν˜•μ‹μ΄ 잘λͺ»λ˜μ—ˆκ±°λ‚˜ ν˜Έν™˜ν•˜μ§€ μ•ŠλŠ” 경우

 

format μ’…λ₯˜

ν˜•μ‹ μ§€μ •μž 데이터 ν˜•μ‹ 좜λ ₯
%a 뢀동 μ†Œμˆ˜μ (BigDecimal μ œμ™Έ) 뢀동 μ†Œμˆ˜μ  숫자의 16μ§„μˆ˜ 좜λ ₯
%b λͺ¨λ“  μœ ν˜• null이 μ•„λ‹λ•Œ true, null이면 false
%c character μœ λ‹ˆμ½”λ“œ 문자
%d μ •μˆ˜(byte, short, int, long, bigint 포함) 10μ§„μˆ˜ μ •μˆ˜
%e 뢀동 μ†Œμˆ˜μ  10μ§„μˆ˜
%f 뢀동 μ†Œμˆ˜μ  10μ§„μˆ˜
%g 뢀동 μ†Œμˆ˜μ  10μ§„μˆ˜
%h   hashCode()λ©”μ„œλ“œμ—μ„œ κ°€μ Έμ˜¨ κ°’μ˜ 16μ§„μˆ˜ λ¬Έμžμ—΄
%n   쀄 ꡬ뢄
%o μ •μˆ˜(byte, short, int, long, bigint 포함) 8μ§„μˆ˜
%s   λ¬Έμžμ—΄
%t λ‚ μ§œ/μ‹œκ°„ λ‚ μ§œ/μ‹œκ°„
%x μ •μˆ˜(byte, short, int, long, bigint 포함) 16μ§„μˆ˜

 

예제1

public class Test {
    public static void main(String[] args) {
        String name = "sonoo";
        String sf1 = String.format("name is %s", name);
        String sf2 = String.format("value is %f", 32.33434);
        String sf3 = String.format("value is %32.12f", 32.33434);   //returns 12 char fractional part filling with 0

        System.out.println(sf1);
        System.out.println(sf2);
        System.out.println(sf3);
    }
}

 

예제 2

public class Test {
    public static void main(String[] args) {
        String str1 = String.format("%d", 101);          // Integer value
        String str2 = String.format("%s", "Amar Singh"); // String value
        String str3 = String.format("%f", 101.00);       // Float value
        String str4 = String.format("%x", 101);          // Hexadecimal value
        String str5 = String.format("%c", 'c');          // Char value
        System.out.println(str1);
        System.out.println(str2);
        System.out.println(str3);
        System.out.println(str4);
        System.out.println(str5);
    }
}

 

예제 3

ν˜•μ‹ 지정 외에도 μ•„λž˜μ™€ 같이 λ¬Έμžμ—΄μ˜ λ„ˆλΉ„, νŒ¨λ”© 등을 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

    public static void main(String[] args) {
        String str1 = String.format("%d", 101);
        String str2 = String.format("|%10d|", 101);  // Specifying length of integer
        String str3 = String.format("|%-10d|", 101); // Left-justifying within the specified width
        String str4 = String.format("|% d|", 101);
        String str5 = String.format("|%010d|", 101); // Filling with zeroes
        System.out.println(str1);
        System.out.println(str2);
        System.out.println(str3);
        System.out.println(str4);
        System.out.println(str5);
    }

 

μ°Έκ³ 

 

String.format() μ‚¬μš© μ‹œ μ£Όμ˜ν•  것

μ–Όλ§ˆμ „ μœ„λ„ 경도λ₯Ό κ°€κ³΅ν•˜κΈ° μœ„ν•΄, μ•„λž˜μ™€ 같은 μ½”λ“œλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

medium.com

 

Java String format() method - javatpoint

Java String format() method with method signature and examples of concat, compare, touppercase, tolowercase, trim, length, equals, split, string format in java etc.

www.javatpoint.com