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

C# String.Concat() 메서드 완벽 정리: 문자열 연결 방법과 실전 예제

C#에서 문자열을 연결(Concatenate)할 때는 String.Concat() 메서드를 사용합니다. 이 메서드는 두 개 이상의 문자열을 하나로 합쳐 새로운 문자열을 반환하며, 문자열 조작 작업에서 가장 기본적이면서도 자주 활용되는 기능입니다.

기본 문법

public static string Concat (string str1, string str2);

위 문법에서 매개변수 str1str2는 서로 연결할 문자열입니다. 두 문자열이 순서대로 이어져 하나의 새로운 문자열로 반환됩니다.

사용 예제 1: 두 문자열 연결하기

다음 예제는 두 개의 문자열을 선언한 후, 각 문자열의 정보를 출력하고 String.Concat()으로 연결하는 과정을 보여줍니다.

using System;
public class Demo {
   public static void Main(String[] args) {
      string str1 = "Jack";
      string str2 = "Sparrow";
      Console.WriteLine("String 1 = "+str1);
      Console.WriteLine("HashCode of String 1 = "+str1.GetHashCode());
      Console.WriteLine("Does String1 begins with E? = "+str1.StartsWith("E"));
      Console.WriteLine("\nString 2 = "+str2);
      Console.WriteLine("HashCode of String 2 = "+str2.GetHashCode());
      Console.WriteLine("Does String2 begins with E? = "+str2.StartsWith("E"));
      Console.WriteLine("\nString 1 is equal to String 2? = {0}", str1.Equals(str2));
      Console.WriteLine("Concatenation Result = "+String.Concat(str1,str2));
   }
}

실행 결과

String 1 = Jack
HashCode of String 1 = 1167841345
Does String1 begins with E? = False
String 2 = Sparrow
HashCode of String 2 = -359606417
Does String2 begins with E? = False
String 1 is equal to String 2? = False
Concatenation Result = JackSparrow

실행 결과를 보면 "Jack""Sparrow"라는 두 문자열이 합쳐져 "JackSparrow"라는 하나의 문자열이 생성된 것을 확인할 수 있습니다. 참고로 해시 코드와 StartsWith(), Equals() 결과는 문자열 비교 관련 부가 정보입니다.

사용 예제 2: 문자열 배열 연결하기

String.Concat()은 단일 매개변수 형태로도 사용할 수 있습니다. 이번에는 문자열 배열 전체를 한 번에 연결하는 방법을 살펴보겠습니다.

문법

public static string Concat (params string[] arr);

위 문법에서 arr은 연결 대상인 문자열 배열입니다. params 키워드 덕분에 여러 문자열을 쉼표로 나열해 전달하는 것도 가능합니다.

예제 코드

using System;
public class Demo {
   public static void Main(string[] args) {
      string[] strArr = {"This", "is", "it", "!" };
      Console.WriteLine("String Array...");
      foreach(string s in strArr) {
         Console.WriteLine(s);
      }      
      Console.WriteLine("Concatenation = {0}",string.Concat(strArr));
      string str = string.Join("/", strArr);
      Console.WriteLine("Result (after joining) = " + str);
   }
}

실행 결과

String Array...
This
is
it
!
Concatenation = Thisisit!
Result (after jointing) = This/is/it/!

Concat()과 Join()의 차이점

위 예제에서 주목할 점은 String.Join() 메서드와의 비교입니다. Concat()은 배열의 요소들을 구분자 없이 그대로 이어 붙이는 반면, Join()은 지정한 구분자(위 예제에서는 "/")를 요소 사이에 삽입하여 연결합니다. 따라서 단순 연결이 필요하면 Concat()을, 구분자가 필요한 경우에는 Join()을 사용하는 것이 좋습니다.

정리

  • String.Concat(str1, str2): 두 문자열을 순서대로 연결합니다.
  • String.Concat(params string[] arr): 문자열 배열 또는 가변 개수의 문자열을 한 번에 연결합니다.
  • 구분자가 필요하다면 String.Join() 메서드를 활용하세요.

String.Concat()은 불변(Immutable)인 문자열을 새로 생성하여 반환하므로, 원본 문자열은 변경되지 않는다는 점도 기억해두면 좋습니다.