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()는 여전히 문자열 데이터를 문자 배열로 옮길 때 유용하게 활용됩니다.