Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# ToCharArray() 메서드: 문자열을 문자 배열로 변환하는 방법

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 배열로 변환할 수 있으며, 문자 단위 순회, 정렬, 검색 등 다양한 문자열 처리 작업에서 활용도가 높습니다.