String.Substring String.Substring String.Substring String.Substring Method

정의

이 인스턴스에서 부분 문자열을 검색합니다.Retrieves a substring from this instance.

이 멤버는 오버로드됩니다.This member is overloaded. 구문, 사용법 및 예제를 비롯하여 이 멤버에 대한 자세한 내용을 보려면 오버로드 목록에서 이름을 클릭합니다.For complete information about this member, including syntax, usage, and examples, click a name in the overload list.

오버로드

Substring(Int32) Substring(Int32) Substring(Int32) Substring(Int32)

이 인스턴스에서 부분 문자열을 검색합니다.Retrieves a substring from this instance. 부분 문자열은 지정된 문자 위치에서 시작하고 문자열 끝까지 계속됩니다.The substring starts at a specified character position and continues to the end of the string.

Substring(Int32, Int32) Substring(Int32, Int32) Substring(Int32, Int32) Substring(Int32, Int32)

이 인스턴스에서 부분 문자열을 검색합니다.Retrieves a substring from this instance. 부분 문자열은 지정된 문자 위치에서 시작하고 길이도 지정되어 있습니다.The substring starts at a specified character position and has a specified length.

Substring(Int32) Substring(Int32) Substring(Int32) Substring(Int32)

이 인스턴스에서 부분 문자열을 검색합니다.Retrieves a substring from this instance. 부분 문자열은 지정된 문자 위치에서 시작하고 문자열 끝까지 계속됩니다.The substring starts at a specified character position and continues to the end of the string.

public:
 System::String ^ Substring(int startIndex);
public string Substring (int startIndex);
member this.Substring : int -> string
Public Function Substring (startIndex As Integer) As String

매개 변수

startIndex
Int32 Int32 Int32 Int32

이 인스턴스의 부분 문자열에 있는 0부터 시작할 문자 위치입니다.The zero-based starting character position of a substring in this instance.

반환

이 인스턴스의 startIndex에서 시작하는 부분 문자열에 해당하는 문자열이거나, Empty가 이 인스턴스의 길이와 같으면 startIndex입니다.A string that is equivalent to the substring that begins at startIndex in this instance, or Empty if startIndex is equal to the length of this instance.

예외

startIndex이 0보다 작거나 이 인스턴스 길이보다 큰 경우startIndex is less than zero or greater than the length of this instance.

예제

다음 예제에서는 문자열에서 부분 문자열을 얻는 하는 방법을 보여 줍니다.The following example demonstrates obtaining a substring from a string.

using namespace System;
using namespace System::Collections;

int main()
{
   array<String^>^info = { "Name: Felica Walker", "Title: Mz.",
                           "Age: 47", "Location: Paris", "Gender: F"};
   int found = 0;
   Console::WriteLine("The initial values in the array are:");
   for each (String^ s in info) 
      Console::WriteLine(s);

   Console::WriteLine("\nWe want to retrieve only the key information. That is:");
   for each (String^ s in info) { 
      found = s->IndexOf(": ");
      Console::WriteLine("   {0}", s->Substring(found + 2));
   }
}
// The example displays the following output:
//       The initial values in the array are:
//       Name: Felica Walker
//       Title: Mz.
//       Age: 47
//       Location: Paris
//       Gender: F
//       
//       We want to retrieve only the key information. That is:
//       Felica Walker
//       Mz.
//       47
//       Paris
//       F
using System;

public class SubStringTest {
    public static void Main() {
        string [] info = { "Name: Felica Walker", "Title: Mz.", 
                           "Age: 47", "Location: Paris", "Gender: F"};
        int found = 0;

        Console.WriteLine("The initial values in the array are:");
        foreach (string s in info)
            Console.WriteLine(s);

        Console.WriteLine("\nWe want to retrieve only the key information. That is:");        
        foreach (string s in info) {
            found = s.IndexOf(": ");
            Console.WriteLine("   {0}", s.Substring(found + 2));
        }
    }
}
// The example displays the following output:
//       The initial values in the array are:
//       Name: Felica Walker
//       Title: Mz.
//       Age: 47
//       Location: Paris
//       Gender: F
//       
//       We want to retrieve only the key information. That is:
//          Felica Walker
//          Mz.
//          47
//          Paris
//          F
Public Class SubStringTest
    Public Shared Sub Main()
        Dim info As String() = { "Name: Felica Walker", "Title: Mz.", 
                                 "Age: 47", "Location: Paris", "Gender: F"}
        Dim found As Integer = 0
       
        Console.WriteLine("The initial values in the array are:")
        For Each s As String In info
            Console.WriteLine(s)
        Next s

        Console.WriteLine(vbCrLf + "We want to retrieve only the key information. That is:")
        For Each s As String In info
            found = s.IndexOf(": ")
            Console.WriteLine("   {0}", s.Substring(found + 2))
        Next s
    End Sub 
End Class 
' The example displays the following output:
'       The initial values in the array are:
'       Name: Felica Walker
'       Title: Mz.
'       Age: 47
'       Location: Paris
'       Gender: F
'       
'       We want to retrieve only the key information. That is:
'          Felica Walker
'          Mz.
'          47
'          Paris
'          F

다음 예제에서는 Substring 등호 구분 되는 키/값 쌍을 구분 하는 방법 ("=") 문자입니다.The following example uses the Substring method to separate key/value pairs that are delimited by an equals ("=") character.

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'
Module Example
   Public Sub Main()
      Dim pairs() As String = { "Color1=red", "Color2=green", "Color3=blue",
                                "Title=Code Repository" }
      For Each pair In pairs
         Dim position As Integer = pair.IndexOf("=")
         If position < 0 then Continue For
         Console.WriteLine("Key: {0}, Value: '{1}'", 
                           pair.Substring(0, position),
                           pair.Substring(position + 1))
      Next                          
   End Sub
End Module
' The example displays the following output:
'     Key: Color1, Value: 'red'
'     Key: Color2, Value: 'green'
'     Key: Color3, Value: 'blue'
'     Key: Title, Value: 'Code Repository'

IndexOf 메서드는 문자열의 같음 문자의 위치를 가져오는 데 사용 됩니다.The IndexOf method is used to get the position of the equals character in the string. 에 대 한 호출을 Substring(Int32, Int32) 문자열의 첫 번째 문자에서 시작에 대 한 호출에서 반환 된 문자 수에 대 한 확장 하는 키 이름을 추출 하는 메서드를 IndexOf 메서드.The call to the Substring(Int32, 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 IndexOf method. 에 대 한 호출을 Substring(Int32) 메서드 키에 할당 된 값을 추출 합니다.The call to the Substring(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.

설명

호출 하 여 Substring(Int32) 지정된 된 문자 위치에서 시작 하 고 문자열의 끝에서 끝나는 문자열에서 부분 문자열을 추출 하는 방법입니다.You call the Substring(Int32) method to extract a substring from a string that begins at a specified character position and ends at the end of the string. 시작 문자 위치는 0부터 시작 합니다. 즉, 문자열의 첫 번째 문자를 인덱스 0, 1 인덱싱하지 않아야 합니다.The starting character position is a zero-based; in other words, the first character in the string is at index 0, not index 1. 지정된 된 문자 위치에서 시작 하 고 문자열의 종료 되기 전에 끝나는 부분 문자열을 추출 하려면 호출을 Substring(Int32, Int32) 메서드.To extract a substring that begins at a specified character position and ends before the end of the string, call the Substring(Int32, Int32) method.

참고

이 메서드는 현재 인스턴스의 값을 수정 하지 않습니다.This method does not modify the value of the current instance. 대신, 시작 하는 새 문자열을 반환 합니다는 startIndex 현재 문자열의 위치입니다.Instead, it returns a new string that begins at the startIndex position in the current string.

특정 문자 또는 문자 시퀀스를 시작 하는 부분 문자열을 추출 하려면 메서드를 같은 호출 IndexOfIndexOf 의 값을 검색할 startIndex합니다.To extract a substring that begins with a particular character or character sequence, call a method such as IndexOf or IndexOf to get the value of startIndex. 두 번째 예제에서는이; "=" 문자 다음 문자를 시작 하는 키 값을 추출 합니다.The second example illustrates this; it extracts a key value that begins one character position after the "=" character.

경우 startIndex 0, 원래 문자열을 변경 하지 않고 메서드가 반환 됩니다.If startIndex is equal to zero, the method returns the original string unchanged.

추가 정보

Substring(Int32, Int32) Substring(Int32, Int32) Substring(Int32, Int32) Substring(Int32, Int32)

이 인스턴스에서 부분 문자열을 검색합니다.Retrieves a substring from this instance. 부분 문자열은 지정된 문자 위치에서 시작하고 길이도 지정되어 있습니다.The substring starts at a specified character position and has a specified length.

public:
 System::String ^ Substring(int startIndex, int length);
public string Substring (int startIndex, int length);
member this.Substring : int * int -> string
Public Function Substring (startIndex As Integer, length As Integer) As String

매개 변수

startIndex
Int32 Int32 Int32 Int32

이 인스턴스의 부분 문자열에 있는 0부터 시작할 문자 위치입니다.The zero-based starting character position of a substring in this instance.

length
Int32 Int32 Int32 Int32

부분 문자열에 있는 문자의 수입니다.The number of characters in the substring.

반환

이 인스턴스의 length에서 시작하는 startIndex 길이의 부분 문자열에 해당하는 문자열이거나, Empty가 이 인스턴스의 길이와 같고 startIndex가 0이면 length입니다.A string that is equivalent to the substring of length length that begins at startIndex in this instance, or Empty if startIndex is equal to the length of this instance and length is zero.

예외

startIndex + length는 문자 위치가 이 인스턴스 안에 없음을 나타냅니다.startIndex plus length indicates a position not within this instance.

또는-or- startIndex 또는 length가 0보다 작습니다.startIndex or length is less than zero.

예제

다음 예제에 대 한 간단한 호출을 Substring(Int32, Int32) 여섯 번째 문자 위치에서 시작 하는 문자열에서 두 개의 문자를 추출 하는 메서드 (즉,에서 인덱스 5).The following example illustrates a simple call to the Substring(Int32, Int32) method that extracts two characters from a string starting at the sixth character position (that is, at index five).

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
Module Example
   Public Sub Main()
      Dim value As String = "This is a string."
      Dim startIndex As Integer = 5
      Dim length As Integer = 2
      Dim substring As String = value.Substring(startIndex, length)
      Console.WriteLine(substring)
   End Sub
End Module
' The example displays the following output:
'       is

다음 예제에서는 Substring(Int32, Int32) 메서드 다음 세 가지 경우 문자열 내에서 부분 문자열을 분리 합니다.The following example uses the Substring(Int32, Int32) method in the following three cases to isolate substrings within a string. 두 가지 경우에 부분 문자열 비교에 사용 되 고 세 번째 사례에서 잘못 된 매개 변수를 지정 하기 때문에 예외가 throw 됩니다.In two cases the substrings are used in comparisons, and in the third case an exception is thrown because invalid parameters are specified.

  • 단일 문자 및 문자열 (인덱스 2)에서 세 번째 위치를 추출 하 고 "c"와 비교 합니다.It extracts the single character and the third position in the string (at index 2) and compares it with a "c". 이 비교 반환 true합니다.This comparison returns true.

  • 문자열 (인덱스 3)에서 네 번째 위치에서 시작 하는 0 개의 문자를 추출 하 고 전달 된 IsNullOrEmpty 메서드.It extracts zero characters starting at the fourth position in the string (at index 3) and passes it to the IsNullOrEmpty method. 이 true를 반환 하기 때문에 대 한 호출을 Substring 메서드가 반환 되는 String.Empty합니다.This returns true because the call to the Substring method returns String.Empty.

  • 문자열에서 네 번째 위치에서 시작 하는 한 문자를 추출 하려고 합니다.It attempts to extract one character starting at the fourth position in the string. 해당 위치에 문자가 없는 이기 때문에 메서드 호출 throw는 ArgumentOutOfRangeException 예외입니다.Because there is no character at that position, the method call throws an ArgumentOutOfRangeException exception.

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
Public Class Sample
   Public Shared Sub Main()
      Dim myString As String = "abc"
      Dim test1 As Boolean = myString.Substring(2, 1).Equals("c") ' This is true.
      Console.WriteLine(test1)
      Dim test2 As Boolean = String.IsNullOrEmpty(myString.Substring(3, 0)) ' This is true.
      Console.WriteLine(test2)
      Try  
         Dim str3 As String = myString.Substring(3, 1) ' This throws ArgumentOutOfRangeException.
         Console.WriteLine(str3)
      Catch e As ArgumentOutOfRangeException
         Console.WriteLIne(e.Message)
      End Try   
   End Sub
End Class 
' The example displays the following output:
'       True
'       True
'       Index and length must refer to a location within the string.
'       Parameter name: length

다음 예제에서는 Substring 등호 구분 되는 키/값 쌍을 구분 하는 방법 ("=") 문자입니다.The following example uses the Substring method to separate key/value pairs that are delimited by an equals ("=") character.

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'
Module Example
   Public Sub Main()
      Dim pairs() As String = { "Color1=red", "Color2=green", "Color3=blue",
                                "Title=Code Repository" }
      For Each pair In pairs
         Dim position As Integer = pair.IndexOf("=")
         If position < 0 then Continue For
         Console.WriteLine("Key: {0}, Value: '{1}'", 
                           pair.Substring(0, position),
                           pair.Substring(position + 1))
      Next                          
   End Sub
End Module
' The example displays the following output:
'     Key: Color1, Value: 'red'
'     Key: Color2, Value: 'green'
'     Key: Color3, Value: 'blue'
'     Key: Title, Value: 'Code Repository'

IndexOf 메서드는 문자열의 같음 문자의 위치를 가져오는 데 사용 됩니다.The IndexOf method is used to get the position of the equals character in the string. 에 대 한 호출을 Substring(Int32, Int32) 문자열의 첫 번째 문자에서 시작에 대 한 호출에서 반환 된 문자 수에 대 한 확장 하는 키 이름을 추출 하는 메서드를 IndexOf 메서드.The call to the Substring(Int32, 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 IndexOf method. 에 대 한 호출을 Substring(Int32) 메서드 키에 할당 된 값을 추출 합니다.The call to the Substring(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.

설명

호출 하 여 Substring(Int32, Int32) 지정된 된 문자 위치에서 시작 하 고 문자열의 종료 되기 전에 종료 하는 문자열에서 부분 문자열을 추출 하는 방법입니다.You call the Substring(Int32, Int32) method to extract a substring from a string that begins at a specified character position and ends before the end of the string. 시작 문자 위치는 0부터 시작 합니다. 즉, 문자열의 첫 번째 문자를 인덱스 0, 1 인덱싱하지 않아야 합니다.The starting character position is a zero-based; in other words, the first character in the string is at index 0, not index 1. 지정된 된 문자 위치에서 시작 하 고 문자열의 끝까지 계속 된 부분 문자열을 추출 하려면 호출을 Substring(Int32) 메서드.To extract a substring that begins at a specified character position and continues to the end of the string, call the Substring(Int32) method.

참고

이 메서드는 현재 인스턴스의 값을 수정 하지 않습니다.This method does not modify the value of the current instance. 대신 사용 하 여 새 문자열을 반환 합니다 length 부터 문자는 startIndex 현재 문자열의 위치입니다.Instead, it returns a new string with length characters starting from the startIndex position in the current string.

length 매개 변수는 현재 문자열 인스턴스가에서 추출할 문자의 총 수를 나타냅니다.The length parameter represents the total number of characters to extract from the current string instance. 인덱스에서 시작 문자가 여기에 startIndex합니다.This includes the starting character found at index startIndex. 즉, 합니다 Substring 메서드는 인덱스에서 문자를 추출 하려고 시도 startIndex 인덱스로 startIndex + length -1입니다.In other words, the Substring method attempts to extract characters from index startIndex to index startIndex + length - 1.

특정 문자 또는 문자 시퀀스를 시작 하는 부분 문자열을 추출 하려면 메서드를 같은 호출 IndexOfLastIndexOf 의 값을 검색할 startIndex합니다.To extract a substring that begins with a particular character or character sequence, call a method such as IndexOf or LastIndexOf to get the value of startIndex.

부분 문자열에서 확장 하는 경우 startIndex 를 지정한 문자 시퀀스로 있습니다 메서드를 호출할 수와 같은 IndexOf 또는 LastIndexOf 끝 문자 또는 문자 시퀀스의 인덱스를 가져오려고 합니다.If the substring extends from startIndex to a specified character sequence, you can call a method such as IndexOf or LastIndexOf to get the index of the ending character or character sequence. 변환할 수 있습니다 다음 해당 값 문자열의 인덱스 위치는 다음과 같습니다.You can then convert that value to an index position in the string as follows:

  • 부분 문자열의 끝을 표시 하는 단일 문자에 대 한 검색 한 경우는 length 매개 변수가 같으면 endIndex - startIndex + 1 위치 endIndex 의 반환 값이를 IndexOf 또는 IndexOf 메서드입니다.If you've searched for a single character that is to mark the end of the substring, the length parameter equals endIndex - startIndex + 1, where endIndex is the return value of the IndexOf or IndexOf method. 다음 예제에서는 문자열에서 "b" 문자를 연속 블록을 추출합니다.The following example extracts a continuous block of "b" characters from a string.

    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
    
    Module Example
       Public Sub Main()
          Dim s As String = "aaaaabbbcccccccdd"
          Dim charRange As Char = "b"c
          Dim startIndex As Integer = s.Indexof(charRange)
          Dim endIndex As Integer = s.LastIndexOf(charRange)
          Dim length = endIndex - startIndex + 1
          Console.WriteLine("{0}.Substring({1}, {2}) = {3}",
                            s, startIndex, length, 
                            s.Substring(startIndex, length))
       End Sub
    End Module
    ' The example displays the following output:
    '     aaaaabbbcccccccdd.Substring(5, 3) = bbb
    
  • 부분 문자열의 끝을 표시 하는 여러 문자에 대 한 검색 한 경우는 length 매개 변수가 같으면 endIndex + endMatchLength - startIndex여기서 endIndex 합니다 의반환값IndexOfIndexOf 메서드 및 endMatchLength 부분 문자열의 끝을 표시 하는 문자 시퀀스의 길이입니다.If you've searched for multiple characters that are to mark the end of the substring, the length parameter equals endIndex + endMatchLength - startIndex, where endIndex is the return value of the IndexOf or IndexOf method, and endMatchLength is the length of the character sequence that marks the end of the substring. 다음 예제에서는 XML을 포함 하는 텍스트 블록을 추출 <definition> 요소입니다.The following example extracts a block of text that contains an XML <definition> element.

    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>
    
    Module Example
       Public Sub Main()
          Dim s As String = "<term>extant<definition>still in existence</definition></term>"
          Dim searchString As String = "<definition>"
          Dim startindex As Integer = s.IndexOf(searchString)
          searchString = "</" + searchString.Substring(1)
          Dim endIndex As Integer = s.IndexOf(searchString)
          Dim substring As String = s.Substring(startIndex, endIndex + searchString.Length - StartIndex)
          Console.WriteLine("Original string: {0}", s)
          Console.WriteLine("Substring;       {0}", substring) 
       End Sub
    End Module
    ' 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 메서드입니다.If the character or character sequence is not included in the end of the substring, the length parameter equals endIndex - startIndex, where endIndex is the return value of the IndexOf or IndexOf method.

경우 startIndex 0와 equals 메서드를 현재 문자열의 길이 변경 되지 않은 원래 문자열을 반환 합니다.If startIndex is equal to zero and equals the length of the current string, the method returns the original string unchanged.

추가 정보

적용 대상