C# Join() 메서드란?
C#의 Join() 메서드는 문자열 배열의 모든 요소를 하나의 문자열로 연결할 때 사용됩니다. 각 요소 사이에는 지정한 구분 기호(separator)가 자동으로 삽입되므로, 배열 데이터를 쉼표로 구분된 목록이나 파일 경로처럼 원하는 형태의 문자열로 손쉽게 변환할 수 있습니다.
예를 들어 여러 개의 태그나 이름이 담긴 배열을 화면에 한 줄로 표시해야 할 때, 반복문 없이 Join() 메서드 한 번 호출로 깔끔하게 처리할 수 있어 실무에서 매우 자주 활용됩니다.
문법(Syntax)
Join() 메서드의 기본 문법은 다음과 같습니다.
public static string Join (string separator, string[] val);
separator는 각 요소 사이에 삽입될 구분 기호이며, val은 연결하고자 하는 요소들을 담고 있는 문자열 배열입니다. 두 매개변수 모두 필수 값이며, 메서드는 연결된 최종 문자열을 반환합니다.
참고로 .NET에서는 이 외에도 IEnumerable<string>을 받는 오버로드, 인덱스와 개수를 지정해 일부 요소만 연결하는 오버로드 등 다양한 버전의 Join() 메서드를 제공하므로 상황에 맞게 선택해 사용하면 됩니다.
예제 1 – 슬래시(/)로 배열 요소 연결하기
다음 예제에서는 네 개의 문자열을 담은 배열을 슬래시(/) 구분 기호로 연결합니다.
using System;
public class Demo {
public static void Main(string[] args) {
string[] strArr = {"One", "Two", "Three", "Four" };
Console.WriteLine("String Array...");
foreach(string s in strArr) {
Console.WriteLine(s);
}
string str = string.Join("/", strArr);
Console.WriteLine("Result (after joining) = " + str);
}
}실행 결과
String Array... One Two Three Four Result (after joining) = One/Two/Three/Four
실행 결과를 보면 배열의 각 요소 사이에 슬래시(/)가 삽입되어 One/Two/Three/Four라는 하나의 문자열이 만들어진 것을 확인할 수 있습니다.
예제 2 – 별표(*)로 배열 요소 연결하기
이번에는 더 많은 요소를 가진 배열을 별표(*) 구분 기호로 연결해 보겠습니다.
using System;
public class Demo {
public static void Main(string[] args) {
string[] strArr = {"AB", "BC", "CD", "DE", "EF", "FG", "GH", "IJ" };
Console.WriteLine("String Array...");
foreach(string s in strArr) {
Console.WriteLine(s);
}
string str = string.Join("*", strArr);
Console.WriteLine("Result (after joining) = " + str);
}
}실행 결과
String Array... AB BC CD DE EF FG GH IJ Result (after joining) = AB*BC*CD*DE*EF*FG*GH*IJ
여덟 개의 요소가 모두 별표(*)로 연결되어 하나의 문자열로 반환된 것을 볼 수 있습니다.
정리
C#의 Join() 메서드는 문자열 배열을 하나의 문자열로 합칠 때 가장 간단하고 효율적인 방법입니다. 반복문과 문자열 연산자를 사용하는 것보다 코드가 짧아지고 성능 면에서도 유리하므로, 배열이나 컬렉션의 요소를 구분 기호와 함께 출력해야 하는 경우 적극적으로 활용해 보시기 바랍니다.