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

Отсчитываемая от нуля позиция первого знака подстроки в данном экземпляре. 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 имеет значение меньше нуля или больше длины этого экземпляра. 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, а не индекс 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.

Чтобы извлечь подстроку, которая начинается с определенный символ или последовательность символов, вызвать метод, такой как IndexOf или IndexOf для получения значения 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 равен нулю, этот метод возвращает исходную строку без изменений.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

Отсчитываемая от нуля позиция первого знака подстроки в данном экземпляре. 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 равно длине данного экземпляра, а значение 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 меньше нуля. startIndex or length is less than zero.

Примеры

В следующем примере показан простой вызов Substring(Int32, Int32) метод, который извлекает двух символов из строки, начиная с шестой позиции символа (то есть в индексе пять).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. В двух случаях подстроки используются при сравнении, а в третьем случае создается исключение, так как указаны недопустимые параметры.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) и передает его 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. Поскольку в этой позиции символ отсутствует, вызов метода создает 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, а не индекс 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.

Чтобы извлечь подстроку, которая начинается с определенный символ или последовательность символов, вызвать метод, такой как IndexOf или LastIndexOf для получения значения 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 является возвращаемым значением IndexOf или IndexOf метод. и 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 равно нулю и equals, длина текущей строки, метод возвращает исходную строку без изменений.If startIndex is equal to zero and equals the length of the current string, the method returns the original string unchanged.

См. также

Применяется к