C#에서 특수 문자로 사용되는 것 중에 ‘$‘ 문자가 있습니다.
$ 문자는 C#에서 문자열 리터럴을 보간(Interpolation)된 문자열로 식별할 때 사용합니다.
보간(Interpolation)이라는 단어가 조금 생소하게 느껴지는데 보간법은 수학 분야에서 많이 사용되는 용어이며 내삽(內揷, interpolation)이라고 불리기도 합니다.
C#에서의 보간은 개체의 값을 문자열로 변환하여 다른 문자열에 삽입 하는 것이라고 이해하면 쉽습니다.
즉, string.Format 메서드의 역할과 비슷하게 기능을 수행한다고 생각하면 됩니다.
이번 글에서는 C# 특수 문자인 $ 문자를 사용하여 문자열 보간(Interpolation) 방법을 몇 가지 비슷한 예제를 통해 설명해 보겠습니다.
C#에서 특수 문자 $를 사용한 문자열 보간
▼ 아래 C# 예제는 일반적으로 많이 사용하는 개체의 값을 문자열로 변환하여 다른 문자열에 삽입 또는 연결할 때 사용하는 방식입니다.
var name = “홍길동”;
var age = 21;
var date = DateTime.Now;
//문자열 연결연사자(+) 사용
MessageBox.Show(“이름은 “ + name + “, 나이는 “ + age + “, 현재날짜는 “ + date.ToString(“yyyy-MM-dd”));
//String.Format 사용
MessageBox.Show(string.Format(“이름은 {0}, 나이는 {1}, 현재날짜는 {2}”, name, age, date.ToString(“yyyy-MM-dd”)));
//특수문자 ‘$’를 사용하여 문자열 보간
MessageBox.Show($“이름은 {name}, 나이는 {age}, 현재날짜는 {date:yyyy-MM-dd}”);
//특수문자 ‘$’를 사용하여 문자열 보간 – 조건식 추가
MessageBox.Show($“이름은 {name}, 나이는 {age}, {(age > 20 ? “(성년)” : “(미성년)“)}, 현재날짜는 {date:yyyy-MM-dd}”);
|
▼ 위의 예제를 실행했을 때 메시지 박스 결과입니다.
1. 가장 흔하게 사용하는 방법으로 문자열 연결 연산자인 “+” 기호를 사용하여 문자열과 개체의 문자열을 서로 연결하는 방법입니다.
- var result = “이름은 ” + name + “, 나이는 ” + age + “, 현재날짜는 ” + date.ToString(“yyyy-MM-dd”);
- 문자열 순서대로 쭉 나열하면서 필요한 위치에 바로 개체의 문자열 값을 삽입해서 전체 문자열을 만드는 방식입니다.
- 삽입해야 할 개체가 많은 경우 반복되는 “+” 연결 연산자로 인해 문자열의 해석이 어려워지는 문제점이 있습니다.
2. string.Format 메서드를 사용하여 개체의 값을 문자열로 변환하여 다른 문자열에 삽입하는 방법입니다.
- var result = string.Format(“이름은 {0}, 나이는 {1}, 현재날짜는 {2}”, name, age, date.ToString(“yyyy-MM-dd”));
- 복합 형식 문자열에 서식을 지정할 개체를 순서대로 나열해서 전체 문자열을 만드는 방식입니다.
- 문자열 연결 연산자(+)를 사용하는 것 보다 직관적인 복합 형식 문자열을 지정할 수 있습니다.
- 복합 형식 문자열의 지정된 순서와 나열된 개체의 순서 및 개수가 맞지 않은 경우 잘못된 문자열이 만들어지거나 오류가 발생합니다.
3. C#에서 문자열 보간 특수 문자인 $ 문자를 사용하여 개체의 값을 문자열로 변환하여 다른 문자열에 삽입하는 방법입니다.
- var result1 = $”이름은 {name}, 나이는 {age}, 현재날짜는 {date:yyyy-MM-dd}”;
- var result2 = $”이름은 {name}, 나이는 {age}, {(age > 20 ? “(성년)” : “(미성년)”)}, 현재날짜는 {date:yyyy-MM-dd}”;
- 문자열 보간을 위한 특수 문자 $를 사용해서 전체 문자열을 만드는 방법입니다.
- 굉장히 직관적이고, 구현하기가 쉽습니다.
- 조건부 연산자를 사용하여 좀 더 확장된 기능의 문자열 삽입이 가능합니다.
▼ 문자열 보간 특수 문자 $를 사용할 때 조건부 연산자를 추가한 결과 화면입니다.
- 조건부 연산자에서 나이(age) 개체의 값이 20을 초과하면 ‘(성년)’, 그렇지 않을 경우 ‘(미성년)’을 추가로 문자열에 삽입하고 있습니다.
C# 문자열 보간 $ 문자 사용 예제 더 알아보기
▶ 보간 된 문자열에 연산 결과를 바로 삽입할 수 있습니다.
- var result1 = $”나이는 {age}, 만나이는 {age – 1}“
- 결과 result1 = “나이는 21, 만나이는 20“
- ▼ var a = 5m; var b = 3m; 일 때
- var result2 = $”a / b = {a / b:F2}”;
- 결과 result2 = “a / b = 1.67” (F2:소수점 2자리)
▶ 보간 된 문자열에 중괄호(“{“,”}”)를 포함하려면 이중 중괄호(“{{“, “}}”를 사용합니다.
- var result = $”나이는 {{age}}, 만나이는 {age – 1}”
- 결과 result = “나이는 {21}, 만나이는 20“
마무리
C#에서 특수 문자인 $ 문자는 개체의 값을 다른 문자열에 삽입할 때 무척 편리하게 사용할 수 있습니다.
그동안 문자열 연결 연산자인 “+” 문자를 사용했거나 string.Format 메서드를 많이 사용했다면 지금부터 특수 문자인 $ 문자를 사용하여 문자열 보간을 처리해 보시기 바랍니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
- C# 배열(Array) 사용 방법(배열 선언, 정의, 초기화, 사용 예제)
- C# 오랜 시간 실행되는 Windows Form의 이벤트 중간에 다른 폼의 이벤트를 실행 하는 방법
- C# 문자열에서 영문자만, 숫자만 또는 영문숫자만 남기고 나머지는 제거하는 3가지 방법 및 성능 비교
- C# MessageBox의 버튼(Button) 기본 문구(예,아니오)를 변경 하는 방법
- C# 유닉스 타임스탬프(Unix Timestamp)와 DateTime 간의 변환 방법
- C# 윈폼 크기에 따라 반응형으로 크기가 자동 조절되는 Panel 및 Grid Control 구현 방법
이 글이 도움이 되었기를 바랍니다. ^-^