C# string

Nubox·2024년 10월 11일

C#

목록 보기
4/4

문자열 string

프로그래밍을 하면 가장 많이 다루게 되는 데이터는 숫자와 문자이다.
숫자의 경우, 실수와 정수에서 int 나 float 등의 다양한 형식이 존재하고
문자의 경우, char와 string 형식이 존재한다.

string 형식은 String 클래스 형식의 개체이다. 내부적으로 char 개체를 순차적으로 읽기 전용 컬렉션으로 저장한다. 또한, 문자열에 대한 탐색 및 수정을 위한 다양한 메소드들을 제공한다.

메소드설명
IndexOf()현재 문자열 내에서 찾으려고 하는 지정된 문자 또는 문자열의 위치를 찾는다
LastIndexOf()현재 문자열 내에서 찾으려고 하는지정된 문자 또는 문자열의 위치를 뒤에서부터 찾는다
StartsWith()현재 문자열이 지정된 문자열로 시작하는지를 평가한다
EndsWith()현재 문자열이 지정된 문자열로 끝나는지를 평가한다
Contains()현재 문자열이 지정된문자열을 포함하는지를 평가한다
RePlace()현재 문자열에서 지정된 문자열이 다른지정된 문자열로 모두 바뀐 새 문자열로 반환한다
ToLower()현재 문자열의 모든 대문자를 바꾼 새 문자열을 반환한다
ToUpper()현재 문자열의 모든 소문자를 대문자로 바꾼 새 문자열을 반환한다
Insert()현재 문자열의 지정된 위치로부터 지정된 수만큼의 문자가 삭제된 새 문자열을 반환한다
Remove()현재 문자열의 지정된 위치로부터 지정된수만큼의 문자가 삭제된 새 문자열을 반환합니다.
Trim()현재 문자열의 앞/뒤에 있는 공백을 삭제한 새 문자열을 반환한다
TrimStart()현재 문자열의 앞에 있는 공백을 삭제한 새 문자열을 반환한다
TrimEnd()현재 문자열의 뒤에 있는 공백을 삭제한 새 문자열을 반환 한다
Splite()지정된 문자를 기준으로 현재 문자열을 분리한 다음 분리한 문자열의 배열을 반환한다
SubString()현재 문자열의 지정된 위치로부터 지정된 수 만큼의 문자로 이루어진 새 문자열을 반환한다

Format() 메소드

문자열을 사용하면 자연스럽게 일정 형태를 갖춘 서식을 지정해주기 마련이다. C#에서는 대표적으로 Format()메소드와 문자열 보간이다.

Format() 메소드의 경우, Console.Write() 나 Console.WriteLine()에서 내부적으로 사용하여 출력한다.

Console.Write("Total : {0, -7 :D}", 123);

// 첨자 : '0'
// 맞춤 : '-7'
// 서식 문자열 : ':D'

문자열 틀에 입력하는 {0}{1}...등을 서식항목(formatItem) 이라고 한다.

서식항목의 옵션은 다음과 같다.

첨자맞춤서식 문자열
서식항목의 첨자왼쪽 / 오른쪽 맞춤변환 서식 지정 문자열

https://learn.microsoft.com/ko-kr/dotnet/api/system.string.format?view=net-8.0

문자열 보간(補間)

"비거나 누락된 부분을 채운다"

C# 6.0 새로 도입된 기능으로, 한결 더 편리하게 문자열의 양식을 맞출 수 있도록 프로그래머를 도와준다. Format() 메소드와 다른점은 문자열 틀 앞에 '$' 기호를 붙인다는 것과 서식에 첨자 대신 식이 들어간다. 이 식에서는 변수나 객체의 이름을 그대로 넣거나 상수, 조건에 따른 다른 값을 출력하는 코드가 들어갈 수도 있다.

int a = 10;
float b = 3.14;

Console.Write($"a = {a}, b = {b}");

a = 10, b= 3.14
https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/tokens/interpolated

보간과 StringBuilder와의 관계

string 객체는 기본적으로 불변성을 가지고 있기 때문에 한번 선언되면 내부적으로 수정이나 변환을 하기위해서는 새로운 문자열 객체를 생성해서 할당하게 된다. 하지만 StringBuilder의 경우, 내부적으로 버퍼를 사용하여 기존의 문자열을 가공 및 변환 할 수 있도록 만들어져있다.
그래서 대량의 문자열을 사용하여 반복문자열 수정의 경우에 성능이 두드러지게 차이가 발생한다.

위 글은 이것이 C#이다 를 참고하여 작성

profile
게임 개발을 하면서 배워가는 것들을 조금씩 기록하는 곳입니다

0개의 댓글