C#에서 이스케이프 문자(Escape Sequence)를 사용하여 문자열에서 특수 문자를 처리하는 방법이 있다.
이스케이프 문자는 백슬래시(\)를 사용하여 특수 문자를 문자열에 포함시키는 방법이다.
| 이스케이프 문자 | 설명 | 예제 |
|---|---|---|
| \n | 새 줄(Line break) | "Hello\nWorld" → Hello (줄 바꿈) World |
| \t | 탭(Tab) | "Hello\tWorld" → Hello World |
| \ | 백슬래시(Backslash) | "C:\\Program Files" → C:\Program Files |
| \" | 큰따옴표(Double Quote) | "She said \"Hello\"" → She said "Hello" |
| \' | 작은따옴표(Single Quote) | char quote = '\''; → ' |
| \r | 캐리지 리턴(Carriage Return) | "Hello\rWorld" → 줄의 맨 앞으로 이동 후 World 출력 |
| \b | 백스페이스(Backspace) | "Hello\bWorld" → HellWorld (o 삭제됨) |
| \f | 폼 피드(Form Feed) | "Hello\fWorld" → 새 페이지로 이동 (거의 사용 안 함) |
| \v | 수직 탭(Vertical Tab) | "Hello\vWorld" → 수직 간격 추가됨 (거의 사용 안 함) |
using System;
class Program
{
static void Main()
{
string message = "Hello\nWorld"; // 줄 바꿈
Console.WriteLine(message);
string path = "C:\\Users\\Alice"; // 백슬래시 사용
Console.WriteLine(path);
string quote = "She said, \"Hello!\""; // 큰따옴표 포함
Console.WriteLine(quote);
}
}
결과
Hello
World
C:\Users\Alice
She said, "Hello!"
@리터럴 문자열 (Verbatim String)백슬래시(\)를 많이 써야 할 때, @를 사용하면 이스케이프 문자를 무시하고 문자열을 그대로 사용할 수 있다.
string path = @"C:\Users\Alice\Documents";
Console.WriteLine(path);
// 출력: C:\Users\Alice\Documents
@을 붙이면 \를 두 번 쓰지 않아도 된다.$보간과 @리터럴을 함께 사용하면 가독성이 좋아진다.
string userName = "Alice";
string path = $@"C:\Users\{userName}\Documents";
Console.WriteLine(path);
// 출력: C:\Users\Alice\Documents
| 사용 방법 | 예제 | 설명 |
|---|---|---|
| 이스케이프 문자 | "Hello\nWorld" | 줄 바꿈 |
| 백슬래시 포함 (\) | "C:\Users\Alice" | 경로에서 백슬래시 표현 |
| 큰따옴표 포함 (\") | "She said \"Hello\"" | 큰따옴표 포함 |
| @ 리터럴 문자열 | @"C:\Users\Alice" | \를 두 번 쓰지 않아도 됨 |
| 보간 + 리터럴 문자열 ($@"...") | $@"C:\Users{userName}" | 문자열 보간과 경로 표현을 함께 사용 |