C# 서식 문자열의 특수 기호
C#에서 서식 문자열(format string)을 작성할 때 #, 0, ., ,, %, ‰와 같은 기호들은 단순한 문자가 아니라 특별한 의미를 지닌 서식 지정자(format specifier)로 해석됩니다.
예를 들어 '#'는 숫자 자릿수를 나타내고 '%'는 백분율 변환에 사용됩니다. 따라서 이러한 기호들을 문자 그대로 화면에 출력하려면 별도의 처리가 필요합니다.
백슬래시 이스케이프 문자 사용법
특정 문자가 서식 지정자로 해석되지 않도록 하려면 해당 문자 앞에 이스케이프 문자인 백슬래시(\)를 붙이면 됩니다. 이렇게 하면 C# 컴파일러가 해당 문자를 일반 문자로 취급합니다.
특히 #, 0, 그리고 백슬래시 자신인 \ 문자를 출력해야 하는 경우에는 반드시 이스케이프 처리를 거쳐야 합니다.
예제 코드
아래 예제에서는 '#' 문자 앞에 백슬래시 이스케이프 문자를 붙여 숫자 뒤에 '##'를 문자 그대로 출력하는 방법을 보여줍니다.
using System;
using System.Globalization;
class Demo {
static void Main() {
int num = 20;
Console.WriteLine(num.ToString("\\#\\# ##0 Rank"));
}
}
실행 결과
## 20 Rank
실행 결과를 보면 '\#'로 이스케이프 처리된 두 개의 '#'가 서식 지정자가 아닌 일반 문자로 인식되어 그대로 출력된 것을 확인할 수 있습니다. 반면 세 번째 '#'는 이스케이프 처리되지 않아 서식 지정자로 동작하며, 정수 값 20이 해당 위치에 채워졌습니다.