문자열 보간을 사용하여 형식이 지정된 문자열 생성
이 자습서에서는 문자열 보간을 사용하여 단일 문자열에 값을 삽입하는 방법을 설명합니다. 결과 문자열의 텍스트 형식 지정을 제어하는 방법도 알아봅니다. 브라우저를 사용하여 C# 코드를 작성 및 실행하고 결과를 즉시 볼 수 있습니다.
보간된 문자열 만들기
대화형 창에서 다음 코드를 실행합니다. 포커스 모드 시작 단추를 선택합니다. 그런 다음, 대화형 창에 다음 코드 블록을 입력하고(<name>
을 사용자 이름으로 바꿈) 실행을 선택합니다.
var name = "<name>";
Console.WriteLine($"Hello, {name}. It's a pleasure to meet you!");
코드를 실행하면 인사말에 사용자 이름이 포함된 문자열이 출력에 표시됩니다. WriteLine 메서드 호출의 문자열 인수는 ‘보간된 문자열 식’입니다. 이는 포함 코드가 들어있는 문자열에서 단일 문자열(결과 문자열이라고 함)을 생성할 수 있게 해주는 일종의 템플릿입니다. 보간된 문자열 식은 문자열에 값을 삽입하거나 여러 개의 문자열을 연결(함께 조인)하는 데 특히 유용합니다.
위의 예제에는 모든 보간된 문자열 식이 포함해야 하는 두 가지 요소가 포함됩니다.
$
문자로 시작한 후 여는 따옴표 문자가 다음에 나오는 문자열 리터럴.$
기호와 따옴표 문자 사이에는 공백이 없어야 합니다. (공백을 포함하면 어떻게 되는지 확인하려면 대화형 창에서$
문자 뒤에 공백을 삽입하고 업데이트된 코드를 실행합니다. C# 컴파일러가 "예기치 않은 문자 '$'"라는 메시지를 표시합니다.)하나 이상의 ‘보간 식’. 보간 식은 열기 및 닫기 중괄호(
{
및}
)로 표시됩니다. 중괄호 안에 값을 반환(null
포함)하는 C# 식을 배치할 수 있습니다.
몇 가지 다른 데이터 형식을 포함하는 문자열 보간 예제를 더 살펴보겠습니다.
다양한 데이터 형식 포함
이전 단계에서는 한 문자열을 다른 문자열 내에 삽입하는 데 문자열 보간을 사용했습니다. 보간된 문자열 식의 일부인 각 보간 식은 어떤 데이터 형식이든 될 수 있습니다. 보간된 문자열에 다양한 데이터 형식의 식 값을 포함시켜 보겠습니다.
다음 예제에서는 먼저 Name
, Price
및 perPackage
멤버를 포함한 튜플을 정의합니다. 대화형 창에서 다음 코드를 실행합니다.
var item = (Name: "eggplant", Price: 1.99m, perPackage: 3);
var date = DateTime.Now;
Console.WriteLine($"On {date}, the price of {item.Name} was {item.Price} per {item.perPackage} items.");
보간된 문자열의 보간 식 item.Price
는 결과 문자열에 포함된 “1.99”라는 텍스트로 확인됩니다. 이것은 식 결과의 형식이 문자열이 아닌 경우 다음과 같은 방식으로 결과가 문자열로 확인되기 때문입니다.
보간 식이
null
로 평가되면 빈 문자열(“” 또는 String.Empty)이 사용됩니다.보간 식이
null
로 평가되지 않으면 결과 식의ToString
메서드가 호출됩니다.
이 예제의 출력에서 날짜는 매우 정확하며(eggplant 가격은 초마다 변경되지 않음), 가격 값은 통화 단위를 나타내지 않습니다. 다음 단계에서는 식 결과에 대한 문자열 표현의 형식을 제어하여 해당 문제를 해결하는 방법을 알아봅니다.
보간 식의 서식 제어
이전 단계에서는 형식이 잘못 지정된 두 개의 문자열을 결과 문자열에 삽입했습니다. 하나는 날짜만 적절한 날짜 및 시간 값이었습니다. 두 번째는 통화 단위를 나타내지 않는 가격이었습니다. 두 가지 문제는 쉽게 해결할 수 있습니다. 문자열 보간을 통해 특정 유형의 형식을 제어하는 형식 문자열을 지정할 수 있습니다. 다음 줄에 표시된 것처럼 이전 예제의 Console.WriteLine
에 대한 호출을 수정하여 날짜 및 가격 식의 형식 문자열을 포함시킵니다.
Console.WriteLine($"On {date:d}, the price of {item.Name} was {item.Price:C2} per {item.perPackage} items");
콜론(“:”)과 형식 문자열을 사용하여 보간 식에 따라 형식 문자열을 지정합니다. "d"는 간단한 날짜 형식을 나타내는 표준 날짜 및 시간 형식 문자열입니다. "C2"는 소수점 뒤 두 자릿수를 포함하는 통화 값으로 숫자를 나타내는 표준 숫자 형식 문자열입니다.
.NET 라이브러리의 많은 형식은 미리 정의된 형식 문자열 집합을 지원합니다. 여기에는 모든 숫자 형식과 날짜 및 시간 형식이 포함됩니다. 형식 문자열을 지원하는 형식의 전체 목록을 보려면 .NET의 서식 지정 형식 문서의 형식 문자열 및 .NET 클래스 라이브러리 형식을 참조하세요.
예제에서 형식 문자열을 수정하여 날짜 및 시간의 서식과 숫자 값에 미치는 영향을 확인해 보세요. {date:d}
의 "d"를 "t"(짧은 시간 형식 표시), "y"(연도 및 월 표시) 및 "yyyy"(연도를 4자리 숫자로 표시)로 변경합니다. {price:C2}
의 "C2"를 "e"(지수 표기) 및 "F3"(소수점 뒤 세 자릿수의 숫자 값)으로 변경합니다.
형식을 제어하는 것 외에도, 결과 문자열에 포함된 형식이 지정된 문자열의 필드 너비와 맞춤을 제어할 수 있습니다. 다음 단계에서 이 작업을 수행하는 방법을 알아봅니다.
필드 너비와 보간 식의 맞춤을 제어합니다.
일반적으로 보간된 문자열 식의 결과가 문자열로 형식이 지정되면 해당 문자열은 결과 문자열에 선행 또는 후행 공백 없이 포함됩니다. 특히 데이터 집합을 가지고 작업하는 경우 필드 너비와 텍스트 맞춤을 제어할 수 있으면 보다 읽기 쉬운 출력을 생성하는 데 도움이 됩니다. 이를 확인하려면 다음 코드를 수행합니다.
var inventory = new Dictionary<string, int>()
{
["hammer, ball pein"] = 18,
["hammer, cross pein"] = 5,
["screwdriver, Phillips #2"] = 14
};
Console.WriteLine($"Inventory on {DateTime.Now:d}");
Console.WriteLine(" ");
Console.WriteLine($"|{"Item",-25}|{"Quantity",10}|");
foreach (var item in inventory)
Console.WriteLine($"|{item.Key,-25}|{item.Value,10}|");
항목 이름은 왼쪽 맞춤이며 해당 수량은 오른쪽 맞춤입니다. 보간 식 뒤에 쉼표(“,”)를 추가하고 최소 필드 너비를 지정하여 맞춤을 지정합니다. 지정한 값이 양수이면 필드는 오른쪽 맞춤입니다. 음수이면 필드는 왼쪽 맞춤입니다.
{"Item",-25}
및 {item.Key,-25}
코드에서 음수 기호를 제거하고 예제를 다시 실행해 보세요. 이때 항목 이름은 오른쪽 맞춤으로 정렬됩니다.
하나의 보간 식에 대해 맞춤 지정자 및 형식 문자열을 결합할 수 있습니다. 이렇게 하려면 먼저 맞춤을 지정하고 콜론과 형식 문자열을 지정합니다. 필드 너비가 정의된 세 가지 형식이 지정된 문자열을 표시하는 다음 코드를 실행해 보세요.
Console.WriteLine($"[{DateTime.Now,-20:d}] Hour [{DateTime.Now,-10:HH}] [{1063.342,15:N2}] feet");
축하합니다!
문자열 보간 대화형 자습서를 완료했습니다. .NET 사이트를 방문하여 .NET Core SDK를 다운로드하고, 머신에 프로젝트를 만들고, 계속해서 코딩할 수 있습니다.
자세한 내용은 문자열 보간을 참조하세요.
본 섹션과 관련하여 문제가 있으십니까? 문제가 있으시면 본 섹션을 개선하기 위해 피드백을 제출해 주세요.
.NET