안녕하세요,
밤마다 이어지는 모스크바의 눈발 때문에-
퇴근길이 험난하기만한 개발자 윤진입니다.
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은 그 밖에 흥미로운 특징이 많으므로 따로 한 번 더 살펴볼까 합니다.
그럼 좋은 하루 보내세요.
'IT' 카테고리의 다른 글
[C#] 속성에 대한 간단한 테스트 (0) | 2017.02.09 |
---|---|
[C#] 늘 헛갈리 Modal vs Modeless (0) | 2017.02.07 |
[C#] 소수점이 있는 숫자는 float일까 double일까. (30) | 2017.02.04 |
[C#] readonly 변수를 사용하는 이유는? (30) | 2017.02.02 |
[C#] 왜 partial class를 사용하는걸까요? (34) | 2017.02.01 |
[C#] bool.Parser vs Convert.ToBoolean() (0) | 2017.01.30 |
[C#] Unicode에서 한글 초성/중성/종성에 대한 짧은 고찰 (0) | 2017.01.29 |
[C#] UTF-16의 캐릭터 크기에 대한 간단한 탐구 (0) | 2017.01.28 |
[C#] int.MaxValue 코딩컨벤션에 대한 사소한 의문 (30) | 2017.01.27 |
[C#] 코딩컨벤션, linux_kernel_coding_style vs camelCase vs PascalCase (2) | 2017.01.26 |