string

Clean·2025년 3월 15일

문자열 "안녕하세요" 에서 문자 "안" 구하기

MSW에서는 string타입 변수가 있을 때,
몇번째에 어떤 문자가 있는지 알기 어려웠는데,

C#에서는 string타입 변수가 있을 때,
변수명[index]로 접근할 수 있다는게 신기하다.


string은 문자열이고, char은 문자로 다른 데이터 타입이다.

그렇다면 왜 string[]로 몇번째 글자가 있는지 알 수 있는걸까?

C#에서 string은 문자의 배열인 char[]과 비슷하지만,

불변성을 가지는 자료형이라고 한다.

불변성 : 한번 생성된 데이터는 값을 수정할 수 없다.

string text = "안녕하세용";
Console.WriteLine(text[0]); // 안

text[0] = '반'; // 읽기만 가능해서 수정 불가

char[]은 문자 하나하나가 독립적으로 변경이 가능한 배열이지만,

string은 한번 생성되면 내용을 수정할 수 없다.


string To char

string stringTest = "안녕하세용";
char[] charTest = stringTest.ToCharArray();

위와 같이 stringchar로 변환하는 방법이 있다.


char To string

char[] charTest1 = new char[5];
charTest1[0] = '반';
charTest1[1] = '갑';
charTest1[2] = '습';
charTest1[3] = '니';
charTest1[4] = '당';

string stringTest1 = new string(charTest1);			// 방법 1

string stringTest2 = string.Join("", charTest1);	// 방법 2

위와 같이 charstring으로 변환하는 방법이 있다.


char[]의 문자열 보간

string stringTest3 = "안녕하세용";
char[] charTest3 = strinTest1.ToCharArray();

Console.WriteLine($"{stringTest3} : {charTest3}");
// 안녕하세용 : System.Char[]

char[]을 문자열 보간으로 콘솔에 출력하면 System.Char[]로 출력된다.

Console.WriteLine($"{stringTest3} : {string.Join("", charTest3)}");
// 안녕하세용 : 안녕하세용

이럴 때는 위의 방법대로 string타입으로 변환하면 정상적으로 출력된다.


string.Join()

배열 안의 값들 사이사이에 구분자separator을 넣어 string타입으로 반환하는 함수이다.
params키워드가 있어서 배열 타입뿐만 아니라 개별적으로 넣어도 된다.

// 개별적으로 넣는 예시
string joinTest = string.Join(", ", "가", "나", "다");

0개의 댓글