IT2017.01.31 21:00



안녕하세요,

밤마다 이어지는 모스크바의 눈발 때문에-

퇴근길이 험난하기만한 개발자 윤진입니다.


C#의 문자열을 살펴보다가 의문이 들어 포스팅을 시작하려 합니다. :)


C에서 포인터로 들어간 문자열(문자들 + '\0')을 관리하였습니다만,

char *s = "string";

C#에는 포인터 대신 string class로 문자열을 관리하고 있습니다.

string s = "string";


이 사실을 접하자마자 처음 든 의문은,

C#에서 char[]을 string처럼 사용할 수 있는지 여부였습니다.


char[]와 string은 모두 다수의 문자를 저장할 수 있지만,

char는 struct, string은 class인 만큼 둘 사이에 간극은 큽니다.

그렇기 때문에 char[]는 string이라고 말할 수 없고,

char[]가 string이 되기 위에서는 배열을 문자열로 변환해주는 생성자나 메소드를 이용해야 합니다.


- 생성자를 이용하여 char[]를 string으로 변환하기

char[] characters = {'s', 't', 'r', 'i', 'n', 'g'};
string str = new string(characters);


- 메소드를 이용하여 char[]를 string으로 변환하기

char[] characters = {'s', 't', 'r', 'i', 'n', 'g'};
string str = string.Join("", characters);

char[] characters = {'s', 't', 'r', 'i', 'n', 'g'};
string str = string.Concat(character);


char[]를 콘솔로 출력할 때는 Console.Write() 메소드에 char[]를 넣으면 됩니다.

Console.Write()는 string 뿐만 아니라 char[]도 아규먼트로 받고 있죠.

[C#]
public static void Write(
 char[] buffer
);


string은 그 밖에 흥미로운 특징이 많으므로 따로 한 번 더 살펴볼까 합니다.


그럼 좋은 하루 보내세요.



신고
Posted by 타이젠 개발자, 윤진
TAG , ,