๐ฎ๋ณตํฉ ์์ ์ง์ ์ด๋? (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#์ผ๋ก ํ์ํ๊ธฐ ์ํด ์์ซ์ ๋ฐ์ดํฐ ์์ ์ง์