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

C# Substring() 메서드 완벽 정리 – 문자열 일부 추출하는 방법

C#의 Substring() 메서드는 현재 문자열 인스턴스에서 특정 위치부터 시작하는 부분 문자열(substring)을 추출할 때 사용됩니다. 지정한 문자 위치부터 문자열 끝까지, 또는 지정한 길이만큼의 문자열을 반환합니다.

기본 문법

Substring() 메서드는 두 가지 오버로드 형태를 제공합니다.

public string Substring(int begnIndex);
public string Substring(int begnIndex, int len);

매개변수 설명

  • begnIndex: 부분 문자열을 추출할 시작 위치입니다. 인덱스는 0부터 시작합니다.
  • len: 추출할 문자열의 길이(문자 수)입니다.

첫 번째 형태는 시작 인덱스만 받아 해당 위치부터 문자열 끝까지 전체를 반환하며, 두 번째 형태는 시작 위치와 길이를 모두 지정하여 원하는 만큼만 잘라냅니다.

예제 1 – 시작 인덱스만 지정하기

시작 위치만 지정하면 그 위치부터 문자열 끝까지 모두 추출됩니다.

using System;
public class Demo {
    public static void Main(String[] args) {
        string str1 = "Katherine";
        string str2 = "PQRS";
        Console.WriteLine("String1 = "+str1);
        Console.WriteLine("String1 ToUpperInvariant = "+str1.ToUpperInvariant());
        Console.WriteLine("String1 Substring from index4 = " + str1.Substring(4));
        Console.WriteLine("\nString2 = "+str2);
        Console.WriteLine("String2 ToLowerInvariant = "+str2.ToLowerInvariant());
        Console.WriteLine("String2 Substring from index2 = " + str2.Substring(2));
    }
}

실행 결과

String1 = Katherine
String1 ToUpperInvariant = KATHERINE
String1 Substring from index4 = erine
String2 = PQRS
String2 ToLowerInvariant = pqrs
String2 Substring from index2 = RS

위 예제에서 str1.Substring(4)는 "Katherine"의 인덱스 4(다섯 번째 문자 'e')부터 끝까지인 "erine"을 반환하고, str2.Substring(2)는 "PQRS"의 인덱스 2부터 끝까지인 "RS"를 반환합니다.

예제 2 – 시작 인덱스와 길이 함께 지정하기

시작 위치와 길이를 함께 지정하면 원하는 구간만 정확하게 추출할 수 있습니다.

using System;
public class Demo {
    public static void Main(String[] args) {
        string str1 = "Notebook";
        string str2 = "Ultrabook";
        Console.WriteLine("String1 = "+str1);
        Console.WriteLine("String1 ToUpperInvariant = "+str1.ToUpperInvariant());
        Console.WriteLine("String1 Substring(4, 4) = " + str1.Substring(4, 4));
        Console.WriteLine("\nString2 = "+str2);
        Console.WriteLine("String2 ToLowerInvariant = "+str2.ToLowerInvariant());
        Console.WriteLine("String2 Substring(0, 5) = " + str2.Substring(0, 5));
    }
}

실행 결과

String1 = Notebook
String1 ToUpperInvariant = NOTEBOOK
String1 Substring(4, 4) = book
String2 = Ultrabook
String2 ToLowerInvariant = ultrabook
String2 Substring(0, 5) = Ultra

str1.Substring(4, 4)는 "Notebook"의 인덱스 4부터 4글자인 "book"을, str2.Substring(0, 5)는 "Ultrabook"의 처음부터 5글자인 "Ultra"를 반환합니다.

사용 시 주의사항

Substring() 메서드를 사용할 때 다음 사항에 유의해야 합니다.

  • 시작 인덱스가 문자열 길이보다 크거나 음수일 경우 ArgumentOutOfRangeException 예외가 발생합니다.
  • 길이(len) 매개변수가 음수이거나, 시작 인덱스와 길이의 합이 문자열 길이를 초과하면 역시 예외가 발생합니다.
  • 원본 문자열은 변경되지 않으며, 새로운 문자열이 반환됩니다. C#의 문자열(string)은 불변(immutable)이기 때문입니다.