[Java] String format() method
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);
}