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

C#에서 주어진 문자열의 모든 부분 문자열(Substring)을 구하는 방법

C#으로 문자열의 모든 부분 문자열 나열하기

주어진 문자열의 모든 부분 문자열(substring)을 나열하려면 C#의 Substring 메서드를 사용하고, 문자열의 길이만큼 반복문을 돌며 각 위치에서 잘라낸 문자열을 추출하면 됩니다.

예를 들어 다음과 같은 문자열이 있다고 가정해 보겠습니다.

string myStr = "pqrz";

모든 부분 문자열을 얻으려면 중첩 반복문(nested loop)을 사용합니다. 바깥쪽 반복문은 부분 문자열의 길이를 결정하고, 안쪽 반복문은 시작 위치를 이동시키면서 새로운 문자열에 부분 문자열을 저장합니다.

for (int i = 1; i <= myStr.Length; i++) {
    for (int start = 0; start <= myStr.Length - i; start++) {
        // 부분 문자열 추출
    }
}

다음은 위 로직을 구현한 완전한 예제 코드입니다.

예제

using System;

public class Demo {
    public static void Main() {
        string myStr = "pqrz";

        for (int i = 1; i <= myStr.Length; i++) {
            for (int start = 0; start <= myStr.Length - i; start++) {
                string substr = myStr.Substring(start, i);
                Console.WriteLine(substr);
            }
        }
    }
}

실행 결과

p
q
r
z
pq
qr
rz
pqr
qrz
pqrz

코드 설명

  • 바깥쪽 반복문(i): 추출할 부분 문자열의 길이를 1부터 문자열 전체 길이까지 순차적으로 지정합니다. 조건을 i <= myStr.Length로 설정해야 문자열 전체("pqrz")도 결과에 포함됩니다.
  • 안쪽 반복문(start): 해당 길이에서 시작할 수 있는 모든 위치를 순회합니다. 시작 위치는 최대 myStr.Length - i까지 가능합니다.
  • Substring(start, i): 첫 번째 인수는 시작 인덱스, 두 번째 인수는 추출할 문자 수를 의미합니다.

이처럼 이중 반복문과 Substring 메서드만 활용하면 별도의 라이브러리 없이도 문자열의 모든 부분 문자열을 손쉽게 생성하고 출력할 수 있습니다.