C#에서 문자열을 반복하는 방법에 대한 안내입니다. 크게 3가지를 다루며, 각각 캐릭터 카운트, 스트링 반복문, Enumerable 클래스의 리핏을 사용하겠습니다.
String(char c, int count)
스트링에서 새 인스턴스를 초기화하며 특정 문자 'c'를 지정한 횟수 'count'만큼 반복하여 문자를 나타낼 수 있습니다. 'c' 매개변수는 유니코드 문자이며 'count' 매개변수는 문자 'c'가 발생하는 횟수입니다.
string scc = new string('B', 3);
=> "BBB"
for (int i = 0; i < 3; i++)
for 또는 while과 같은 반복문으로 스트링을 초기화 합니다. 해당 예제는 스트링빌더를 사용하였습니다. i번 반복하여 문자열을 할당합니다.
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 3; i++)
{
sb.Append("Beom");
}
string sf = sb.ToString();
=> "BeomBeomBeom"
Enumerable.Repeat
System.Linq.Enumerable 클래스의 반복 메서드를 사용하는 방법입니다. 사용하려는 리핏 메서드의 명세는 다음과 같습니다.
public static IEnumerable<TResult> Repeat<TResult>(TResult element, int count);
// 요약: 반복 되는 값을 포함 하는 시퀀스를 생성 합니다.
// 매개 변수: element: 반복할 값입니다.
// count: 생성된 시퀀스에서 값을 반복할 횟수입니다.
// 형식 매개 변수: TResult: 결과 시퀀스에서 반복할 값의 형식입니다.
// 반환 값: System.Collections.Generic.IEnumerable`1 반복 되는 값을 포함 하는 합니다.
// 예외: T:System.ArgumentOutOfRangeException: count가 0보다 작은 경우
생성한 enumerable 열거 객체를 string 메서드와 함께 문자열로 초기화 할 수 있습니다.
string.Concat(Enumerable.Repeat)
concatenate는 연쇄시키다는 뜻을 가지고 있으며, 스트링 클래스의 Concat 메서드는 문자열을 사슬같이 잇도록 합니다.
string sc = string.Concat(Enumerable.Repeat("Beom", 3));
=> "BeomBeomBeom"
string.Join(Enumerable.Repeat)
스트링 클래스의 Join 메서드로 문자열을 조인하는 방법은 다음과 같습니다. separator를 string.Empty로 설정하는 경우에는 concat 메서드와 비슷한 결과를 가져올 수 있습니다.
string sj = string.Join(",", Enumerable.Repeat("Beom", 3));
=> "Beom,Beom,Beom"
string sj2 = string.Join(string.Empty, Enumerable.Repeat("Beom", 3));
=> "BeomBeomBeom"
StringBuilder.Insert
스트링빌더 인스턴스의 0번째 인덱스에 문자열의 복사본을 삽입하는 방법입니다.
string si = new StringBuilder().Insert(0, "Beom", 3).ToString();
=> "BeomBeomBeom"