Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- #csharp #산술오버플로우 #checked #unchecked #overflowexception #정수연산 #오버플로우처리 #csharp세미나 #디버깅 #성능최적화
- #csharp #bool #boolean #논리연산자 #부울연산자 #단락평가 #조건문 #csharp기초 #삼항연산자 #csharp세미나
- 빗썸api
- #csharp #배열 #다차원배열 #가변배열 #배열초기화 #indexrange #span #배열비교 #csharp기초 #배열세미나
- #csharp #수치형식 #numerictypes #리터럴 #형식추론 #접미사 #decimal #float #double #프로그래미링기조 #그래피포뷰
- #csharp #산술연산자 #arithmeticoperators #기초프로그래밍 #csharp기초 #연산자우선순위 #정수연산 #실수연산 #math클래스 #나눗셈예외 #csharp세미나 #닷넷개발 #프로그래밍입문
- c#bool
- 파이썬
- #csharp #var키워드 #타입추론 #암묵적형식지정 #익명형식 #linq #지역변수 #csharp세미나
- 빛썸
- #csharp #문자열 #문자 #string #char #문자열보간 #문자열연결 #문자열비교 #형식지정자 #문자변환 #csharp세미나
- #csharp #매개변수 #ref #out #params #명명된인수 #선택적매개변수 #메서드전달 #csharp세미나
- c#
- #csharp #부동소수점 #nan #infinity #특수값 #ieee754 #수치계산 #double #float #decimal #csharp세미나
- 무노동수입
- #csharp #표현식 #배정표현식 #void표현식 #연산자 #산술연산자 #조건연산자 #표현식기초 #csharp세미나
- #csharp #널연산자 #nulloperator #널조건부연산자 #널접합연산자 #nullcheck #csharp세미나 #nullsafe #코드안정성
- #csharp #double #decimal #실수형 #정밀도 #부동소수점 #고정소수점 #금융계산 #과학계산 #csharp세미나 #닷넷기초
- 테더
- #csharp #부동소수점 #반올림오차 #실수계산 #float #double #decimal #mathround #정확도비교 #csharp세미나
- c#string
- #csharp #수치변환 #형식변환 #자동변환 #명시변환 #convert #parse #tryparse #csharp세미나
- USDT
- #csharp #비트연산자 #bitwiseoperators #flagsenum #masking #시프트연산 #비트연산 #성능최적화 #csharp세미나 #하드웨어제어
- #csharp #기본값 #definiteassignment #default키워드 #초기화규칙 #구조체초기화 #null값 #csharp세미나
- #csharp #연산자우선순위 #결합성 #operatorprecedence #연산자결합 #오른쪽결합 #왼쪽결합 #csharp세미나
- 자동매매
- #csharp #관계연산자 #상등연산자 #equals #비교연산 #null비교 #float비교 #csharp기초 #csharp세미나 #문자열비교
- #csharp #스택과힙 #메모리구조 #값형식 #참조형식 #박싱 #가비지컬렉션 #힙메모리 #메서드스택 #csharp세미나
- #csharp #조건연산자 #삼항연산자 #논리연산자 #단락평가 #ifelse축약 #조건문 #프로그래밍기초 #csharp세미나
Archives
- Today
- Total
맛있는 개발노트 (맛과 개발을 함께)
C# 세미나 자료: 문자열과 문자 (String & Char) 본문
1. 개요
C#에서 string과 char는 텍스트 데이터를 처리하기 위한 핵심 타입입니다. 문자열과 문자는 다양한 방식으로 생성, 변환, 비교, 출력이 가능하며, 실무에서 매우 자주 사용됩니다.
이 세미나에서는 문자와 문자열의 기초 개념부터, 형식화(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}" 와 같이 표현 가능합니다.
'C# 학습 > C# 언어의 기초' 카테고리의 다른 글
C# 세미나 자료: 매개변수 (Parameters) (0) | 2025.04.08 |
---|---|
C# 세미나 자료: 배열 (Array) (0) | 2025.04.08 |
C# 세미나 자료: 조건 논리 연산자와 조건 연산자 (삼항 연산자) (0) | 2025.04.08 |
C# 세미나 자료: 상등 및 관계 연산자 (Equality & Relational Operators) (0) | 2025.04.08 |
C# 세미나 자료: 부울 형식과 연산자 (Boolean Type & Operators) (0) | 2025.04.08 |