C#의 ToCharArray() 메서드는 문자열에 포함된 문자들을 유니코드(Unicode) 문자 배열(char[])로 복사하는 데 사용됩니다. 문자열을 개별 문자 단위로 다루어야 할 때 매우 유용한 메서드입니다.
문법
ToCharArray() 메서드의 기본 문법은 다음과 같습니다.
public char[] ToCharArray(); public char[] ToCharArray(int begnIndex, int len);
매개변수에 대한 설명은 아래와 같습니다.
- begnIndex: 복사를 시작할 부분 문자열의 시작 위치(인덱스)
- len: 복사할 부분 문자열의 길이
즉, 매개변수 없이 호출하면 문자열 전체가 배열로 복사되고, 시작 인덱스와 길이를 지정하면 해당 범위의 일부 문자만 배열로 복사됩니다.
예제 1: 전체 문자열을 문자 배열로 변환
먼저 매개변수 없이 ToCharArray()를 사용하여 문자열 전체를 문자 배열로 변환하는 예제를 살펴보겠습니다.
using System;
public class Demo {
public static void Main(String[] args) {
string str1 = "Notebook";
string str2 = "Ultrabook";
char[] arr1 = str1.ToCharArray();
char[] arr2 = str2.ToCharArray();
Console.WriteLine("String1 = "+str1);
Console.WriteLine("String1 ToUpperInvariant = "+str1.ToUpperInvariant());
Console.WriteLine("String1 Substring from index4 = " + str1.Substring(4, 4));
Console.Write("Character array...String1 =");
for (int i = 0; i < arr1.Length; i++)
Console.Write(" " + arr1[i]);
Console.WriteLine("
String2 = "+str2);
Console.WriteLine("String2 ToUpperInvariant = "+str2.ToLowerInvariant());
Console.WriteLine("String2 Substring from index2 = " + str2.Substring(0, 5));
Console.Write("Character array...String2 =");
for (int i = 0; i < arr2.Length; i++)
Console.Write(" " + arr2[i]);
}
}출력 결과
String1 = Notebook String1 ToUpperInvariant = NOTEBOOK String1 Substring from index4 = book Character array...String1 = N o t e b o o k String2 = Ultrabook String2 ToUpperInvariant = ultrabook String2 Substring from index2 = Ultra Character array...String2 = U l t r a b o o k
위 출력 결과에서 확인할 수 있듯이, str1.ToCharArray()를 호출하면 "Notebook"이라는 문자열의 모든 문자가 하나씩 char 배열 요소로 복사되었습니다.
예제 2: 특정 범위의 문자만 배열로 변환
이번에는 시작 인덱스와 길이를 지정하여 문자열의 일부분만 문자 배열로 변환하는 예제입니다.
using System;
public class Demo {
public static void Main(String[] args) {
string str1 = "Welcome!";
string str2 = "Thisisit!";
char[] arr1 = str1.ToCharArray(3,2);
char[] arr2 = str2.ToCharArray(2,2);
Console.WriteLine("String1 = "+str1);
Console.WriteLine("String1 ToUpperInvariant = "+str1.ToUpperInvariant());
Console.WriteLine("String1 Substring from index4 = " + str1.Substring(4, 4));
Console.Write("Character array...String1 =");
for (int i = 0; i < arr1.Length; i++)
Console.Write(" " + arr1[i]);
Console.WriteLine("
String2 = "+str2);
Console.WriteLine("String2 ToUpperInvariant = "+str2.ToLowerInvariant());
Console.WriteLine("String2 Substring from index2 = " + str2.Substring(0, 5));
Console.Write("Character array...String2 =");
for (int i = 0; i < arr2.Length; i++)
Console.Write(" " + arr2[i]);
}
}출력 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
String1 = Welcome! String1 ToUpperInvariant = WELCOME! String1 Substring from index4 = ome! Character array...String1 = c o String2 = Thisisit! String2 ToUpperInvariant = thisisit! String2 Substring from index2 = Thisi Character array...String2 = i s
정리
- 인덱스 3부터 길이 2만큼 추출한
str1.ToCharArray(3, 2)는 "Welcome!"에서 세 번째 위치의 'c'와 'o' 두 문자를 배열로 반환합니다. - 마찬가지로
str2.ToCharArray(2, 2)는 "Thisisit!"에서 인덱스 2부터 두 문자 'i', 's'를 배열로 반환합니다.
이처럼 ToCharArray() 메서드는 매개변수 사용 여부에 따라 문자열 전체 또는 일부 문자를 손쉽게 char 배열로 변환할 수 있으며, 문자 단위 순회, 정렬, 검색 등 다양한 문자열 처리 작업에서 활용도가 높습니다.