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

Definicja

Pobiera podciąg z tego wystąpienia.Retrieves a substring from this instance.

Ten element członkowski jest przeciążony.This member is overloaded. Aby uzyskać pełne informacje dotyczące tego elementu członkowskiego, w tym informacje o jego składni i zastosowaniu oraz odpowiednie przykłady, kliknij nazwę na liście przeciążeń.For complete information about this member, including syntax, usage, and examples, click a name in the overload list.

Przeciążenia

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

Pobiera podciąg z tego wystąpienia.Retrieves a substring from this instance. Podciąg zaczyna się od określonej pozycji znaku i przechodzi do końca ciągu.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)

Pobiera podciąg z tego wystąpienia.Retrieves a substring from this instance. Podciąg zaczyna się od określonej pozycji znaku i ma określoną długość.The substring starts at a specified character position and has a specified length.

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

Pobiera podciąg z tego wystąpienia.Retrieves a substring from this instance. Podciąg zaczyna się od określonej pozycji znaku i przechodzi do końca ciągu.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

Parametry

startIndex
Int32 Int32 Int32 Int32

Początkowa pozycja znaku w podciągu w tym wystąpieniu (liczony od zera).The zero-based starting character position of a substring in this instance.

Zwraca

Ciąg, który jest odpowiednikiem podciągu, który rozpoczyna startIndex się w tym wystąpieniu startIndex lub Empty jest równy długości tego wystąpienia.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.

Wyjątki

startIndexjest mniejsza od zera lub większa niż długość tego wystąpienia.startIndex is less than zero or greater than the length of this instance.

Przykłady

Poniższy przykład pokazuje, jak uzyskać podciąg z ciągu.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
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

W poniższym przykładzie zastosowano Substring metodę, aby oddzielić pary klucz/wartość, które są rozdzielane znakiem równości ("=").The following example uses the Substring method to separate key/value pairs that are delimited by an equals ("=") character.

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 Metoda jest używana do pobierania pozycji znaku równości w ciągu.The IndexOf method is used to get the position of the equals character in the string. Wywołanie Substring(Int32, Int32) metody wyodrębnia nazwę klucza, która zaczyna się od pierwszego znaku w ciągu i rozszerza liczbę znaków zwracanych przez wywołanie IndexOf metody.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. Wywołanie Substring(Int32) metody następnie wyodrębnia wartość przypisaną do klucza.The call to the Substring(Int32) method then extracts the value assigned to the key. Zaczyna się od jednej pozycji znaku poza znakiem równości i rozciąga się na koniec ciągu.It starts at one character position beyond the equals character and extends to the end of the string.

Uwagi

Wywoływana Substring(Int32) jest metoda wyodrębniania podciągu z ciągu, który rozpoczyna się od określonej pozycji znaku i kończy się na końcu ciągu.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. Początkowe położenie znaku jest zależne od zera. Innymi słowy, pierwszy znak w ciągu ma indeks 0, a nie indeks 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. Aby wyodrębnić podciąg, który rozpoczyna się od określonej pozycji znaku i kończy przed końcem ciągu, wywołaj Substring(Int32, Int32) metodę.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.

Uwaga

Metoda ta nie modyfikuje wartości bieżącego wystąpienia.This method does not modify the value of the current instance. Zamiast tego zwraca nowy ciąg, który rozpoczyna się w startIndex pozycji w bieżącym ciągu.Instead, it returns a new string that begins at the startIndex position in the current string.

Aby wyodrębnić podciąg, który rozpoczyna się od określonego znaku lub sekwencji znaków, wywołaj metodę taką jak IndexOf lub IndexOf , startIndexAby uzyskać wartość.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. Drugi przykład ilustruje to; Wyodrębnia wartość klucza rozpoczynającą się jedną pozycją znaku po znaku "=".The second example illustrates this; it extracts a key value that begins one character position after the "=" character.

Jeśli startIndex jest równa zero, metoda zwraca oryginalny ciąg niezmieniony.If startIndex is equal to zero, the method returns the original string unchanged.

Zobacz też

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

Pobiera podciąg z tego wystąpienia.Retrieves a substring from this instance. Podciąg zaczyna się od określonej pozycji znaku i ma określoną długość.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

Parametry

startIndex
Int32 Int32 Int32 Int32

Początkowa pozycja znaku w podciągu w tym wystąpieniu (liczony od zera).The zero-based starting character position of a substring in this instance.

length
Int32 Int32 Int32 Int32

Liczba znaków w podciągu.The number of characters in the substring.

Zwraca

Ciąg, który jest równoznaczny z podciągiem długości length , który startIndex rozpoczyna się w tym wystąpieniu, Empty lub startIndex jeśli jest równy długości tego wystąpienia i length wynosi zero.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.

Wyjątki

startIndexznak length Plus wskazuje pozycję, która nie znajduje się w tym wystąpieniu.startIndex plus length indicates a position not within this instance.

—lub—-or- startIndexlub length jest mniejsza od zera.startIndex or length is less than zero.

Przykłady

Poniższy przykład ilustruje proste wywołanie Substring(Int32, Int32) metody, która wyodrębnia dwa znaki z ciągu, zaczynając od szóstej pozycji znaku (czyli przy indeksie pięciu).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).

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

W poniższym przykładzie zastosowano Substring(Int32, Int32) metodę w następujących trzech przypadkach w celu wyodrębnienia podciągów w ciągu.The following example uses the Substring(Int32, Int32) method in the following three cases to isolate substrings within a string. W dwóch przypadkach podciągi są używane w porównaniach, a w trzecim przypadku wyjątek jest zgłaszany, ponieważ określono nieprawidłowe parametry.In two cases the substrings are used in comparisons, and in the third case an exception is thrown because invalid parameters are specified.

  • Wyodrębnia pojedynczy znak i trzecią pozycję w ciągu (przy indeksie 2) i porównuje go z literą "c".It extracts the single character and the third position in the string (at index 2) and compares it with a "c". To porównanie zwraca truewartość.This comparison returns true.

  • Wyodrębnia zero znaków, zaczynając od czwartego pozycji w ciągu (przy indeksie 3) i przekazuje go do IsNullOrEmpty metody.It extracts zero characters starting at the fourth position in the string (at index 3) and passes it to the IsNullOrEmpty method. Zwraca wartość true, ponieważ wywołanie Substring metody zwraca String.Emptywartość.This returns true because the call to the Substring method returns String.Empty.

  • Podejmuje próbę wyodrębnienia jednego znaku, rozpoczynając od czwartej pozycji w ciągu.It attempts to extract one character starting at the fourth position in the string. Ponieważ w tym miejscu nie ma żadnego znaku, wywołanie metody zgłasza ArgumentOutOfRangeException wyjątek.Because there is no character at that position, the method call throws an ArgumentOutOfRangeException exception.

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

W poniższym przykładzie zastosowano Substring metodę, aby oddzielić pary klucz/wartość, które są rozdzielane znakiem równości ("=").The following example uses the Substring method to separate key/value pairs that are delimited by an equals ("=") character.

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 Metoda jest używana do pobierania pozycji znaku równości w ciągu.The IndexOf method is used to get the position of the equals character in the string. Wywołanie Substring(Int32, Int32) metody wyodrębnia nazwę klucza, która zaczyna się od pierwszego znaku w ciągu i rozszerza liczbę znaków zwracanych przez wywołanie IndexOf metody.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. Wywołanie Substring(Int32) metody następnie wyodrębnia wartość przypisaną do klucza.The call to the Substring(Int32) method then extracts the value assigned to the key. Zaczyna się od jednej pozycji znaku poza znakiem równości i rozciąga się na koniec ciągu.It starts at one character position beyond the equals character and extends to the end of the string.

Uwagi

Wywoływana Substring(Int32, Int32) jest metoda wyodrębniania podciągu z ciągu, który rozpoczyna się od określonej pozycji znaku i kończy przed końcem ciągu.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. Początkowe położenie znaku jest zależne od zera. Innymi słowy, pierwszy znak w ciągu ma indeks 0, a nie indeks 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. Aby wyodrębnić podciąg, który rozpoczyna się od określonej pozycji znaku i przechodzi do końca ciągu, wywołaj Substring(Int32) metodę.To extract a substring that begins at a specified character position and continues to the end of the string, call the Substring(Int32) method.

Uwaga

Metoda ta nie modyfikuje wartości bieżącego wystąpienia.This method does not modify the value of the current instance. Zamiast tego zwraca nowy ciąg length znaków, zaczynając startIndex od pozycji w bieżącym ciągu.Instead, it returns a new string with length characters starting from the startIndex position in the current string.

length Parametr reprezentuje łączną liczbę znaków do wyodrębnienia z bieżącego wystąpienia ciągu.The length parameter represents the total number of characters to extract from the current string instance. Obejmuje to znak początkowy znaleziony w indeksie startIndex.This includes the starting character found at index startIndex. Substring Innymi słowy, metoda próbuje wyodrębnić znaki z indeksu length startIndex do indeksu startIndex + -1.In other words, the Substring method attempts to extract characters from index startIndex to index startIndex + length - 1.

Aby wyodrębnić podciąg, który rozpoczyna się od określonego znaku lub sekwencji znaków, wywołaj metodę taką jak IndexOf lub LastIndexOf , startIndexAby uzyskać wartość.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.

Jeśli podciąg rozciąga się od startIndex do określonej sekwencji znaków, można wywołać metodę taką jak IndexOf lub LastIndexOf , aby uzyskać indeks znaku końcowego lub sekwencji znaków.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. Następnie można przekonwertować tę wartość na pozycję indeksu w ciągu w następujący sposób:You can then convert that value to an index position in the string as follows:

  • Jeśli length szukasz pojedynczego znaku, który ma oznaczać koniec podciągu, parametr jest równy endIndex - IndexOf startIndex + 1, gdzie endIndex jest wartością zwracaną lub IndexOf Method.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. Poniższy przykład wyodrębnia ciągły blok znaków "b" z ciągu.The following example extracts a continuous block of "b" characters from a string.

    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
    
  • Jeśli szukasz wielu znaków, które mają oznaczać koniec podciągu, length parametr Equals endIndex + startIndex endMatchLength - ma wartość, gdzie endIndex jest wartością zwracanąIndexOf lub MetodaIndexOf orazendMatchLength jest długością sekwencji znaków, która oznacza koniec podciągu.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. Poniższy przykład wyodrębnia blok tekstu, który zawiera element XML <definition> .The following example extracts a block of text that contains an XML <definition> element.

    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>
    
  • Jeśli znak lub sekwencja znaków nie length jest uwzględniona na końcu podciągu, endIndex - IndexOf startIndexparametr ma wartość, gdzie endIndex jest wartością zwracaną lub IndexOf Method.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.

Jeśli startIndex jest równa zero i równa długości bieżącego ciągu, metoda zwraca oryginalny ciąg niezmieniony.If startIndex is equal to zero and equals the length of the current string, the method returns the original string unchanged.

Zobacz też

Dotyczy