๐ฎ๋ณตํฉ ์์ ์ง์ ์ด๋? (What is Composite Formatting?)
๋ณตํฉ ์์ ์ง์ ์ ๋ฌธ์์ด ๋ด์์ ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง ์๋ฆฌ ํ์์๋ฅผ ์ฌ์ฉ
๋ฐํ์์ ์ค๊ดํธ๋ก ๋ฌถ์ ๋ชจ๋ ํญ๋ชฉ์ ํด๋น ์์น์ ๋ฐ๋ผ์๋ ์ ๋ฌ๋๋ ๊ฐ์ผ๋ก ํ์ธ.
string ๋ฐ์ดํฐ ํ์ ํค์๋์, ๊ธฐ๋ณธ ์ ๊ณต ๋ฉ์๋ Format()๋ฅผ ์ฌ์ฉํ๋ ๋ณตํฉ ์์ ์ง์ ์ ์
string first = "Hello";
string second = "World";
string result = string.Format("{0} {1}!", first, second);
๊ฒฐ๊ณผ
Hello World!
๐ฎ๋ฌธ์ ๋ณด๊ฐ์ด๋? (What is string interpolation?)
๋ฌธ์์ด๋ณด๊ฐ์ ๋ณตํฉ ์์ ์ง์ ์ ๊ฐ์ํํ๋ ์๋ก์ด ๊ธฐ์
์ผ๋ฐ์ ์ผ๋ก ๋ณตํฉ ์์ ์ง์ ๋ณด๋ค๋ ๋ฌธ์์ด ๋ณด๊ฐ์ ์ ํธ
๋ฌธ์์ด์ ๋ณด๊ฐํ๋ ค๋ฉด $ ์ง์๋ฌธ ์์ ์ ๋ ฅํด์ผ ํฉ๋๋ค.
string first = "Hello";
string second = "World";
Console.WriteLine($"{first} {second}!");
Console.WriteLine($"{second} {first}!");
Console.WriteLine($"{first} {first} {first}!");
๊ฒฐ๊ณผ
Hello World!
World Hello!
Hello Hello Hello!
๐ฎํตํ ์์ ์ง์ (Formatting currency)
๋ณตํฉ ์์ ์ง์ ๋ฐ ๋ฌธ์์ด ๋ณด๊ฐ์ ์ฌ์ฉํ์ฌ ํน์ ์ธ์ด์ ๋ฌธํ๊ถ์ ๋ํด ํ์ํ ๊ฐ์ ์์์ ์ง์ ํ ์ ์๋ค.
:C ํตํ ์์ ์ง์ ์๋ฅผ ์ฌ์ฉํ์ฌ price ๋ฐ discount ๋ณ์๋ฅผ ํตํ๋ก ํ์
decimal price = 123.45m;
int discount = 50;
Console.WriteLine($"Price: {price:C} (Save {discount:C})");
๊ฒฐ๊ณผ
Price: ¤123.45 (Save ¤50.00)
๊ตญ๊ฐ ํํ์ ๋ํ ๊ธฐํธ ๋์ ๊ธฐํธ ¤๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ํตํ์ ํ์์ ๊ด๊ณ์์ด "ํตํ"๋ฅผ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉ๋๋ ์ผ๋ฐ ๊ธฐํธ, .NET ํธ์ง๊ธฐ์์๋ ํ์ฌ ์์น๋ฅผ ๋ฌด์ํ๋ฏ๋ก ์ด ๊ธฐํธ๊ฐ ํ์๋ฉ๋๋ค.
๊ทธ๋ฌ๋ Winodws ํ์ ์ธ์ด๊ฐ ์์ด๋ก ์ค์ ๋ ๋ฏธ๊ตญ์ ์ปดํจํฐ์์ ์ด ์ฝ๋๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ๋ ๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅ๋ฉ๋๋ค.
Price: $123.45 (Save $50.00)
๋ฌธ์์ด ์์ ์ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉ์ ์ปดํจํ ๋ฌธํ๊ถ์ ๋ฐ๋ผ ์ข์ฐ๋๊ธฐ ๋๋ฌธ์, "๋ฌธํ๊ถ"์ด๋ผ๋ ์ฉ์ด๋ ์ต์ข ์ฌ์ฉ์์ ๊ตญ๊ฐ ๋ฐ ์ธ์ด๋ฅผ ๋ํ๋
๐ฎ์ซ์ ์์ ์ง์ (Formatting numbers)
์ซ์ ๋ฐ์ดํฐ๋ก ์์ ํ ๋ ์ผํ๋ก ์ฒ ๋จ์, ๋ฐฑ๋ง ๋จ์, ์ญ์ต ๋จ์ ๋ฑ์ ๋ํ๋ด ๊ฐ๋ ์ฑ์ ๋์ด๋ ๋ฐฉ์์ผ๋ก ์ซ์์ ์์์ ์ง์ ํ ์ ์๋ค.
decimal measurement = 123456.78912m;
Console.WriteLine($"Measurement: {measurement:4N} units");
N ์ซ์ ์์ ์ง์ ์๋ ์์์ ๋ค์ 2๊ฐ์ ์ซ์๋ง ํ์ ex)N4๋ ์์์ ๋ค์ 4์๋ฆฌ
Measurement: 123,456.7891 units
๐ฎ๋ฐฑ๋ถ์จ ์์ ์ง์ (Formatting percentages)
๋ฐฑ๋ถ์จ ์์์ ์ง์ ํ๋ ค๋ฉด P ์์ ์ง์ ์๋ฅผ ์ฌ์ฉ, ์์์ ๋ค์ ํ์๋๋ ๊ฐ์ ์๋ฅผ ์ ์ด
decimal tax = .36785m;
Console.WriteLine($"Tax rate: {tax:P2}");
Tax rate: 36.79 %
int invoiceNumber = 1201;
decimal productMeasurement = 25.4568m;
decimal subtotal = 2750.00m;
decimal taxPercentage = .15825m;
decimal total = 3185.19m;
Console.WriteLine($"Invoice Number: {invoiceNumber}");
Console.WriteLine($" Measurement: {productMeasurement:N3} mg");
Console.WriteLine($" Sub Total: {subtotal:C}");
Console.WriteLine($" Tax: {taxPercentage:P2}");
Console.WriteLine($" Total Due: {total:C}");
Invoice Number: 1201
Measurement: 25.457 mg
Sub Total: ¤2,750.00
Tax: 15.83 %
Total Due: ¤3,185.19
๐ฎ์์ชฝ ์ฌ๋ฐฑ ๋ฐ ๋ง์ถค (padding and alignment)
์ ๋๋ ๋ค์ ๊ณต๋ฐฑ์ ์ถ๊ฐํ์ฌ ๋ฌธ์์ด ์์ ์ง์
string input = "Pad this";
Console.WriteLine(input.PadLeft(12));
โ Pad this
Console.WriteLine(input.PadLeft(12, '-'));
Console.WriteLine(input.PadRight(12, '-'));
----Pad this
Pad this----
์ถ์ฒ: Ms Docs Learn C#์ผ๋ก ํ์ํ๊ธฐ ์ํด ์์ซ์ ๋ฐ์ดํฐ ์์ ์ง์