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

Definice

Načte podřetězec z této instance.Retrieves a substring from this instance.

Tento člen je přetížen.This member is overloaded. Podrobnější informace o tomto členu, včetně syntaxe, způsobu použití a příkladů, získáte kliknutím na název v seznamu přetížení.For complete information about this member, including syntax, usage, and examples, click a name in the overload list.

Přetížení

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

Načte podřetězec z této instance.Retrieves a substring from this instance. Podřetězec začíná na zadané pozici znaku a pokračuje na konec řetězce.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)

Načte podřetězec z této instance.Retrieves a substring from this instance. Podřetězec začíná na zadané pozici znaku a má zadanou délku.The substring starts at a specified character position and has a specified length.

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

Načte podřetězec z této instance.Retrieves a substring from this instance. Podřetězec začíná na zadané pozici znaku a pokračuje na konec řetězce.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

Počáteční pozice znaku v podřetězci vycházející z nuly v této instanci.The zero-based starting character position of a substring in this instance.

Návraty

Řetězec, který je ekvivalentní podřetězci, který začíná startIndex v této instanci, nebo Empty Pokud startIndex se rovná délce této instance.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.

Výjimky

startIndexje menší než nula nebo větší než délka této instance.startIndex is less than zero or greater than the length of this instance.

Příklady

Následující příklad ukazuje získání podřetězce z řetězce.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

Následující příklad používá Substring metodu pro oddělení párů klíč/hodnota, které jsou odděleny znakem rovnosti ("=").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 slouží k získání pozice znaku rovná se v řetězci.The IndexOf method is used to get the position of the equals character in the string. Volání Substring(Int32, Int32) metody extrahuje název klíče, který začíná prvním znakem v řetězci a rozšiřuje počet znaků vrácený voláním 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. Volání Substring(Int32) metody pak extrahuje hodnotu přiřazenou ke klíči.The call to the Substring(Int32) method then extracts the value assigned to the key. Začíná na jednu pozici znaku za znakem rovná se a rozšiřuje na konec řetězce.It starts at one character position beyond the equals character and extends to the end of the string.

Poznámky

Zavoláte Substring(Int32) metodu pro extrakci podřetězce z řetězce, který začíná na zadané pozici znaku a končí na konci řetězce.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. Počáteční pozice znaku je počítána od nuly; Jinými slovy, první znak v řetězci je na indexu 0, ne index 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. Chcete-li extrahovat podřetězec, který začíná na zadané pozici znaku a končí před koncem řetězce, zavolejte Substring(Int32, Int32) metodu.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.

Poznámka

Tato metoda neupravuje hodnotu aktuální instance.This method does not modify the value of the current instance. Místo toho vrátí nový řetězec, který začíná na startIndex pozici v aktuálním řetězci.Instead, it returns a new string that begins at the startIndex position in the current string.

Chcete-li extrahovat podřetězec, který začíná určitým znakem nebo sekvencí znaků, zavolejte metodu jako IndexOf nebo IndexOf startIndexpro získání hodnoty.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. Druhý příklad znázorňuje toto: extrahuje hodnotu klíče, která začíná jednu pozici znaku za znakem "=".The second example illustrates this; it extracts a key value that begins one character position after the "=" character.

Pokud startIndex je rovno nule, metoda vrátí původní řetězec beze změny.If startIndex is equal to zero, the method returns the original string unchanged.

Viz také

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

Načte podřetězec z této instance.Retrieves a substring from this instance. Podřetězec začíná na zadané pozici znaku a má zadanou délku.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

Počáteční pozice znaku v podřetězci vycházející z nuly v této instanci.The zero-based starting character position of a substring in this instance.

length
Int32 Int32 Int32 Int32

Počet znaků v podřetězci.The number of characters in the substring.

Návraty

Řetězec, který je length ekvivalentní podřetězci délky, který startIndex začíná v této instanci, nebo Empty Pokud startIndex se rovná délce této instance a length je nula.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.

Výjimky

startIndexznaménko plus length označuje pozici, která není v rámci této instance.startIndex plus length indicates a position not within this instance.

-nebo--or- startIndexnebo length je menší než nula.startIndex or length is less than zero.

Příklady

Následující příklad ilustruje jednoduché volání Substring(Int32, Int32) metody, která extrahuje dva znaky z řetězce počínaje šestým znakem pozice (tj. v indexu pět).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

Následující příklad používá Substring(Int32, Int32) metodu v následujících třech případech k izolaci podřetězců v rámci řetězce.The following example uses the Substring(Int32, Int32) method in the following three cases to isolate substrings within a string. Ve dvou případech jsou podřetězce použity v porovnání a třetí případ je vyvolána výjimka, protože jsou zadány neplatné parametry.In two cases the substrings are used in comparisons, and in the third case an exception is thrown because invalid parameters are specified.

  • Extrahuje jeden znak a třetí pozici v řetězci (na indexu 2) a porovná ho s "c".It extracts the single character and the third position in the string (at index 2) and compares it with a "c". Toto porovnání se truevrátí.This comparison returns true.

  • Extrahuje nula znaků od čtvrté pozice v řetězci (na indexu 3) a předá ji IsNullOrEmpty metodě.It extracts zero characters starting at the fourth position in the string (at index 3) and passes it to the IsNullOrEmpty method. To vrátí hodnotu true, protože volání Substring metody vrátí String.Emptymetodu.This returns true because the call to the Substring method returns String.Empty.

  • Pokusí se extrahovat jeden znak od čtvrté pozice v řetězci.It attempts to extract one character starting at the fourth position in the string. Vzhledem k tomu, že na této pozici není žádný znak, vyvolá ArgumentOutOfRangeException volání metody výjimku.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

Následující příklad používá Substring metodu pro oddělení párů klíč/hodnota, které jsou odděleny znakem rovnosti ("=").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 slouží k získání pozice znaku rovná se v řetězci.The IndexOf method is used to get the position of the equals character in the string. Volání Substring(Int32, Int32) metody extrahuje název klíče, který začíná prvním znakem v řetězci a rozšiřuje počet znaků vrácený voláním 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. Volání Substring(Int32) metody pak extrahuje hodnotu přiřazenou ke klíči.The call to the Substring(Int32) method then extracts the value assigned to the key. Začíná na jednu pozici znaku za znakem rovná se a rozšiřuje na konec řetězce.It starts at one character position beyond the equals character and extends to the end of the string.

Poznámky

Zavoláte Substring(Int32, Int32) metodu pro extrakci podřetězce z řetězce, který začíná na zadané pozici znaku a končí před koncem řetězce.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. Počáteční pozice znaku je počítána od nuly; Jinými slovy, první znak v řetězci je na indexu 0, ne index 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. Chcete-li extrahovat podřetězec, který začíná na zadané pozici znaku a pokračuje na konec řetězce, zavolejte Substring(Int32) metodu.To extract a substring that begins at a specified character position and continues to the end of the string, call the Substring(Int32) method.

Poznámka

Tato metoda neupravuje hodnotu aktuální instance.This method does not modify the value of the current instance. Místo toho vrátí nový řetězec se length znaky počínaje startIndex od pozice v aktuálním řetězci.Instead, it returns a new string with length characters starting from the startIndex position in the current string.

length Parametr představuje celkový počet znaků, které mají být extrahovány z aktuální instance řetězce.The length parameter represents the total number of characters to extract from the current string instance. To zahrnuje počáteční znak nalezený v indexu startIndex.This includes the starting character found at index startIndex. Jinými slovy, metoda se Substring pokusí extrahovat znaky z indexu startIndex do indexu startIndex + length -1.In other words, the Substring method attempts to extract characters from index startIndex to index startIndex + length - 1.

Chcete-li extrahovat podřetězec, který začíná určitým znakem nebo sekvencí znaků, zavolejte metodu jako IndexOf nebo LastIndexOf startIndexpro získání hodnoty.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.

Pokud podřetězec sahá z startIndex na určenou sekvenci znaků, můžete zavolat metodu, IndexOf například nebo LastIndexOf , a získat tak index koncového znaku nebo sekvence znaků.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. Tuto hodnotu pak můžete převést na pozici indexu v řetězci následujícím způsobem:You can then convert that value to an index position in the string as follows:

  • Pokud jste hledali length jeden znak, který má označovat konec podřetězce, parametr se endIndex - IndexOf startIndex rovná + 1, kde endIndex je návratová hodnota nebo IndexOf Metoda.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. Následující příklad extrahuje souvislý blok "b" znaků z řetězce.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
    
  • Pokud jste hledali length více znaků, které mají označovat konec podřetězce, parametr se endIndex + startIndex endMatchLength - rovná, kde endIndex je návratová hodnota IndexOf nebo MetodaIndexOf aendMatchLength je délka sekvence znaků, která označuje konec podřetězce.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. Následující příklad extrahuje blok textu, který obsahuje XML <definition> element.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>
    
  • Pokud znak nebo sekvence znaků nejsou length zahrnuty na konci podřetězce, parametr se endIndex - IndexOf startIndexrovná, kde endIndex je návratová hodnota nebo IndexOf Metoda.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.

Pokud startIndex se rovná nule a rovná se délce aktuálního řetězce, metoda vrátí původní řetězec beze změny.If startIndex is equal to zero and equals the length of the current string, the method returns the original string unchanged.

Viz také

Platí pro