이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

String.Substring 메서드 (Int32, Int32)

 

게시 날짜: 2016년 7월

이 인스턴스에서 부분 문자열을 검색합니다. 부분 문자열은 지정된 문자 위치에서 시작하고 길이도 지정되어 있습니다.

네임스페이스:   System
어셈블리:  mscorlib(mscorlib.dll에 있음)

public string Substring(
	int startIndex,
	int length
)

매개 변수

startIndex
Type: System.Int32

이 인스턴스의 부분 문자열에 있는 0부터 시작할 문자 위치입니다.

length
Type: System.Int32

부분 문자열에 있는 문자의 수입니다.

반환 값

Type: System.String

이 인스턴스의 length에서 시작하는 startIndex 길이의 부분 문자열에 해당하는 문자열이거나, Empty가 이 인스턴스의 길이와 같고 startIndex가 0이면 length입니다.

Exception Condition
ArgumentOutOfRangeException

startIndex + length는 문자 위치가 이 인스턴스 안에 없음을 나타냅니다.

또는

startIndex 또는 length가 0보다 작습니다.

호출 하는 Substring(Int32, Int32) 메서드를 지정된 된 문자 위치에서 시작 하 고 문자열의 끝 이전 끝나는 문자열에서 하위 문자열을 추출 합니다. 시작 문자 위치는 0부터 시작 합니다. 즉, 문자열에서 첫 번째 문자는 인덱스 0, 1 인덱싱하지 않아야 합니다. 지정 된 문자 위치에서 시작 하는 문자열의 끝으로 계속 하는 부분 문자열을 추출 하려면 호출 된 Substring(Int32) 메서드.

System_CAPS_note참고

이 메서드는 현재 인스턴스의 값을 수정 하지 않습니다. 대신,을 갖는 새 문자열을 반환 length 부터 문자는 startIndex 현재 문자열의 위치입니다.

length 매개 변수는 현재 문자열 인스턴스에서 추출할 문자의 총 수를 나타냅니다. 인덱스에서 시작 문자가 여기에 startIndex합니다. 즉,는 Substring 메서드 인덱스에서 문자를 추출 하려고 startIndex 인덱스로 startIndex + length -1입니다.

특정 문자 또는 문자 시퀀스와 시작 하는 부분 문자열을 추출 하려면 메서드를와 같은 호출 IndexOf 또는 LastIndexOf 의 값을 가져오는 startIndex합니다.

부분 문자열에서 확장 되 면 startIndex 지정 된 문자 시퀀스를 있습니다 메서드를 호출할 수와 같은 IndexOf 또는 LastIndexOf 끝 문자 또는 문자 시퀀스의 인덱스를 가져옵니다. 변환할 수 있습니다 다음 해당 값 문자열의 인덱스 위치를 다음과 같습니다.

  • 부분 문자열의 끝을 표시 하는 단일 문자에 대 한 검색 하는 경우는 length 매개 변수와 같으면 endIndex - startIndex + 1, 여기서 endIndex 의 반환 값은는 IndexOf 또는 IndexOf 메서드. 다음 예제에서는 문자열에서 "b" 문자는 연속 된 블록을 추출합니다.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          String s = "aaaaabbbcccccccdd";
          Char charRange = 'b';
          int startIndex = s.IndexOf(charRange);
          int endIndex = s.LastIndexOf(charRange);
          int length = endIndex - startIndex + 1;
          Console.WriteLine("{0}.Substring({1}, {2}) = {3}",
                            s, startIndex, length, 
                            s.Substring(startIndex, length));
       }
    }
    // The example displays the following output:
    //       aaaaabbbcccccccdd.Substring(5, 3) = bbb
    
  • 부분 문자열의 끝을 표시 하는 여러 문자에 대 한 검색 하는 경우는 length 매개 변수와 같으면 endIndex + endMatchLength - startIndex여기서 endIndex 의 반환 값은는 IndexOf 또는 IndexOf 메서드입니다. 및 endMatchLength 부분 문자열의 끝을 표시 하는 문자 시퀀스의 길이입니다. 다음 예제는 XML이 포함 된 텍스트 블록을 추출 <definition> 요소입니다.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          String s = "<term>extant<definition>still in existence</definition></term>";
          String searchString = "<definition>";
          int startIndex = s.IndexOf(searchString);
          searchString = "</" + searchString.Substring(1);
          int endIndex = s.IndexOf(searchString);
          String substring = s.Substring(startIndex, endIndex + searchString.Length - startIndex);
          Console.WriteLine("Original string: {0}", s);
          Console.WriteLine("Substring;       {0}", substring); 
       }
    }
    // The example displays the following output:
    //     Original string: <term>extant<definition>still in existence</definition></term>
    //     Substring;       <definition>still in existence</definition>
    
  • 문자 또는 문자 시퀀스는 문자열의 끝에 포함 되지 않은 경우는 length 매개 변수와 같으면 endIndex - startIndex여기서 endIndex 의 반환 값은 고 IndexOf 또는 IndexOf 메서드.

경우 startIndex 0와 equals 메서드는 현재 문자열의 길이 변경 하지 않고 원래 문자열을 반환 합니다.

다음 예제에 대 한 간단한 호출은 Substring(Int32, Int32) 여섯 번째 문자 위치에서 시작 하는 문자열에서 두 개의 문자를 추출 하는 메서드 (즉, 인덱스에 포함 된 5).

using System;

public class Example
{
   public static void Main()
   {
      String value = "This is a string.";
      int startIndex = 5;
      int length = 2;
      String substring = value.Substring(startIndex, length);
      Console.WriteLine(substring);
   }
}
// The example displays the following output:
//       is

다음 예제에서는 Substring(Int32, Int32) 메서드 다음 세 가지 경우 문자열 내에서 부분 문자열을 분리 합니다. 두 가지 경우에는 부분 문자열을 비교에 사용 하 고 잘못 된 매개 변수를 지정 하기 때문에 세 번째 경우 예외가 throw 됩니다.

  • 단일 문자 및 문자열 (인덱스 2)에서 세 번째 위치를 추출 하 고 "c"와 비교 합니다. 이 반환 true합니다.

  • 문자열 (인덱스 3)에서 네 번째 위치에서 시작 하는 0 개 문자를 추출 하 고에 전달 된 IsNullOrEmpty 메서드. 이 true를 반환 하기 때문에에 대 한 호출에서 Substring 메서드 반환 String.Empty합니다.

  • 문자열에서 네 번째 위치에서 시작 하는 한 문자를 추출 하려고 시도 합니다. 해당 위치에서 문자가 있기 때문에 메서드 호출에서 throw 한 ArgumentOutOfRangeException 예외입니다.

using System;

public class Sample
{
   public static void Main() {
      String myString = "abc";
      bool test1 = myString.Substring(2, 1).Equals("c"); // This is true.
      Console.WriteLine(test1);
      bool test2 = String.IsNullOrEmpty(myString.Substring(3, 0)); // This is true.
      Console.WriteLine(test2);
      try {
         string str3 = myString.Substring(3, 1); // This throws ArgumentOutOfRangeException.
         Console.WriteLine(str3);
      }
      catch (ArgumentOutOfRangeException e) {
         Console.WriteLine(e.Message);
      }         
   }
}
// The example displays the following output:
//       True
//       True
//       Index and length must refer to a location within the string.
//       Parameter name: length

다음 예제에서는 Substring 같음 구분 되는 키/값 쌍을 구분 하는 메서드 문자 ("=").

using System;

public class Example
{
   public static void Main()
   {
      String[] pairs = { "Color1=red", "Color2=green", "Color3=blue",
                         "Title=Code Repository" };
      foreach (var pair in pairs) {
         int position = pair.IndexOf("=");
         if (position < 0)
            continue;
         Console.WriteLine("Key: {0}, Value: '{1}'", 
                           pair.Substring(0, position),
                           pair.Substring(position + 1));
      }                          
   }
}
// The example displays the following output:
//     Key: Color1, Value: 'red'
//     Key: Color2, Value: 'green'
//     Key: Color3, Value: 'blue'
//     Key: Title, Value: 'Code Repository'

The M:System.String.IndexOf(System.String) method is used to get the position of the equals character in the string.. The call to the M:System.String.Substring(System.Int32,System.Int32) method extracts the key name., which starts from the first character in the string and extends for the number of characters returned by the call to the M:System.String.IndexOf(System.String) method. The call to the M:System.String.Substring(System.Int32) method then extracts the value assigned to the key. It starts at one character position beyond the equals character and extends to the end of the string.

유니버설 Windows 플랫폼
8 이후 사용 가능
.NET Framework
1.1 이후 사용 가능
이식 가능한 클래스 라이브러리
이식 가능한 .NET 플랫폼 에서 지원됨
Silverlight
2.0 이후 사용 가능
Windows Phone Silverlight
7.0 이후 사용 가능
Windows Phone
8.1 이후 사용 가능
맨 위로 이동
표시: