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

C# String.Copy() vs String.CopyTo(): 두 메서드의 차이점 완벽 정리

String.CopyTo() 메서드란?

String.CopyTo() 메서드는 문자열의 특정 부분에 있는 문자들을 추출하여 지정된 문자 배열(char[])에 복사하는 기능을 합니다. 즉, 원본 문자열에서 일련의 문자들을 가져와 문자 배열에 배치할 수 있습니다.

이 메서드는 네 개의 매개변수를 사용합니다.

  • sourceIndex: 복사를 시작할 원본 문자열의 인덱스
  • destination: 복사 대상이 되는 문자 배열
  • destinationIndex: 배열에서 복사가 시작될 위치
  • count: 복사할 문자의 개수

String.CopyTo() 사용 예제

using System;
class Demo {

    static void Main(String[] args) {
        string str = "This is it!";
        char[] ch = new char[5];

        str.CopyTo(2, ch, 0, 2);

        Console.WriteLine("Output...");
        Console.WriteLine(ch);
    }
}

출력 결과

Output...
is

위 예제에서는 "This is it!" 문자열의 인덱스 2부터 2개의 문자("is")를 배열 ch의 인덱스 0부터 복사했습니다. 이처럼 CopyTo()를 활용하면 문자열의 원하는 구간만 선택적으로 배열에 담을 수 있습니다.

String.Copy() 메서드란?

String.Copy() 메서드는 기존 문자열과 동일한 내용을 가진 새로운 문자열 객체를 생성합니다. 이를 통해 원본 문자열과 독립적인 별도의 문자열 인스턴스를 만들 수 있습니다.

String.Copy() 사용 예제

using System;
class Demo {
    static void Main(String[] args) {

        string str1 = "Welcome!";
        string str2 = "user";
        str2 = String.Copy(str1);

        Console.WriteLine("Output...");
        Console.WriteLine(str2);
    }
}

출력 결과

Output...
Welcome!

위 예제에서 str1의 내용이 String.Copy()를 통해 새로운 문자열 객체로 복사되어 str2에 할당되었으며, 출력 결과로 "Welcome!"이 표시됩니다.

핵심 차이점 요약

  • String.CopyTo(): 문자열의 일부 문자를 문자 배열(char[])로 복사합니다.
  • String.Copy(): 전체 문자열을 복사하여 새로운 문자열 객체를 생성합니다.

참고로 최신 .NET(.NET 5 이상) 환경에서는 String.Copy()가 더 이상 권장되지 않으므로, 단순히 문자열을 복사할 때는 대입 연산자(=)를 사용하는 것이 좋습니다. 반면 CopyTo()는 여전히 문자열 데이터를 문자 배열로 옮길 때 유용하게 활용됩니다.