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);
}
์ฐธ๊ณ
'BackEnd๐ฑ > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OOP] ๊ฐ์ฒด์งํฅ ์ค๊ณ ์์น 5๊ฐ์ง (0) | 2022.06.02 |
---|---|
[Java] ๋ด๋ถ ํด๋์ค(inner class) ์ ์ต๋ช ํด๋์ค(anonymous class) (2) | 2022.05.18 |
[Java] (Project, Package, Class, Method) Naming ๊ท์น (0) | 2022.05.16 |
[Java] Object to int (0) | 2022.05.06 |
[Java] wrapper ํด๋์ค์ ์ ์, ๋ฉ๋ชจ๋ฆฌ, ์บ์ฑ (0) | 2022.04.08 |
[Java] StringBuffer์ StringBuilder (0) | 2022.04.06 |
๋๊ธ