Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

맛있는 개발노트 (맛과 개발을 함께)

C# 세미나 자료: 문자열과 문자 (String & Char) 본문

C# 학습/C# 언어의 기초

C# 세미나 자료: 문자열과 문자 (String & Char)

DevGourmet 2025. 4. 8. 01:05

1. 개요

C#에서 stringchar는 텍스트 데이터를 처리하기 위한 핵심 타입입니다. 문자열과 문자는 다양한 방식으로 생성, 변환, 비교, 출력이 가능하며, 실무에서 매우 자주 사용됩니다.

이 세미나에서는 문자와 문자열의 기초 개념부터, 형식화(formatting), 연결(concatenation), 보간(interpolation), 비교 등 실무에 유용한 기능들을 단계별로 설명합니다.


2. 기본 이론

2.1 char 형식

  • 하나의 유니코드 문자 표현
  • 작은따옴표('') 사용
char c = 'A';
Console.WriteLine((int)c); // 65 (유니코드 코드 값)

2.2 string 형식

  • 유니코드 문자들의 불변(immutable) 시퀀스
  • 큰따옴표(" ") 사용
string s = "Hello, World!";

3. 단계별 설명

3.1 초급: 문자열 생성과 연결

string firstName = "Alice";
string lastName = "Lee";
string fullName = firstName + " " + lastName;
Console.WriteLine(fullName); // "Alice Lee"
  • + 연산자로 문자열 연결 가능
  • string.Concat() 또는 string.Join() 사용 가능

3.2 중급: 문자열 보간 (String Interpolation)

string name = "홍길동";
int age = 30;
string message = $"이름: {name}, 나이: {age}";
Console.WriteLine(message);
  • $"...{변수}" 형식으로 문자열 삽입
  • 복잡한 문자열 조립 시 가독성이 뛰어남

3.3 중급: 문자열 형식화 (String.Format)

string formatted = string.Format("{0}년 {1}월 {2}일", 2024, 4, 8);
Console.WriteLine(formatted); // "2024년 4월 8일"
  • 자리 표시자 기반으로 문자열 구성 가능
  • 숫자, 날짜, 통화 등 형식화 출력에 유용

3.4 고급: 문자열 비교

string s1 = "apple";
string s2 = "Apple";

Console.WriteLine(s1 == s2); // false
Console.WriteLine(s1.Equals(s2, StringComparison.OrdinalIgnoreCase)); // true
  • 기본 ==는 대소문자 구분
  • Equals, CompareTo, string.Compare 등 다양한 방법 존재
  • 문화권(Culture)에 따라 비교 방식 다를 수 있음

3.5 고급: 문자 변환

char digit = '7';
int number = digit - '0'; // 문자 '7' → 정수 7

int num = 5;
char ch = (char)(num + '0'); // 정수 5 → 문자 '5'
  • 문자를 숫자처럼 변환하려면 유니코드 코드 값 활용
  • char.GetNumericValue() 또는 int.Parse(char.ToString())도 사용 가능

4. 주의사항 및 팁

  • string은 immutable → 연결 반복 시 StringBuilder 사용 고려
  • 문자열 비교 시 StringComparison.OrdinalIgnoreCase 권장
  • string.IsNullOrEmpty() 또는 string.IsNullOrWhiteSpace()로 빈 문자열 처리
  • 보간 문자열에서 표현식 내부 계산도 가능: $"합계: {price * quantity:C}"

5. 결론

  • 문자열과 문자는 C#에서 사용자와의 상호작용, 데이터 처리에 필수적인 타입입니다.
  • 문자열 보간은 가장 현대적이고 가독성 높은 방식이며, 연결과 형식화 방식과 함께 상황에 맞게 선택해야 합니다.
  • 비교, 변환, 처리 시 성능과 정확성을 위해 메서드 선택에 주의합시다.

6. Q&A

Q1. 문자열 연결을 반복하면 왜 느릴까요?
A1. string은 불변이라 새로운 문자열을 계속 생성하므로 메모리 낭비가 발생합니다. 반복 연결 시 StringBuilder 사용을 추천합니다.

Q2. string.Equals와 ==의 차이는 무엇인가요?
A2. 기본 동작은 같지만 Equals는 대소문자/문화권 비교 방식 지정이 가능합니다.

Q3. 숫자 → 문자 변환은 어떻게 하나요?
A3. (char)(숫자 + '0') 또는 숫자.ToString() 사용 가능합니다.

Q4. 문자열 보간에서 중괄호 내부에 연산도 가능한가요?
A4. 네, $"합계: {price * count}" 와 같이 표현 가능합니다.