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

Definição

Recupera uma subcadeia de caracteres desta instância.Retrieves a substring from this instance.

Esse membro está sobrecarregado.This member is overloaded. Para informação completa sobre esse membro, incluindo sintaxe, uso e exemplos, clique em um nome na lista de sobrecargas.For complete information about this member, including syntax, usage, and examples, click a name in the overload list.

Sobrecargas

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

Recupera uma subcadeia de caracteres desta instância.Retrieves a substring from this instance. A subcadeia de caracteres começa em uma posição de caractere especificado e continua até o final da cadeia de caracteres.The substring starts at a specified character position and continues to the end of the string.

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

Recupera uma subcadeia de caracteres desta instância.Retrieves a substring from this instance. A subcadeia de caracteres começa em uma posição de caractere especificado e tem um comprimento especificado.The substring starts at a specified character position and has a specified length.

Substring(Index) Substring(Index) Substring(Index) Substring(Index)

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

Parâmetros

startIndex
Index Index Index Index

Retornos

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

Recupera uma subcadeia de caracteres desta instância.Retrieves a substring from this instance. A subcadeia de caracteres começa em uma posição de caractere especificado e continua até o final da cadeia de caracteres.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

Parâmetros

startIndex
Int32 Int32 Int32 Int32

A posição de caractere de início de base zero de uma subcadeia de caracteres nesta instância.The zero-based starting character position of a substring in this instance.

Retornos

Uma cadeia de caracteres equivalente à subcadeia de caracteres que começa em startIndex nessa instância, ou Empty, se startIndex for igual ao comprimento dessa instância.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.

Exceções

startIndex for menor que zero ou maior que o comprimento dessa instância.startIndex is less than zero or greater than the length of this instance.

Exemplos

O exemplo a seguir demonstra a obtenção de uma subcadeia de caracteres de uma cadeia de caracteres.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

O exemplo a seguir usa o Substring método para separar os pares chave/valor que são delimitados por igual a caractere ("=").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'

O IndexOf método é usado para obter a posição do caractere de igual na cadeia de caracteres.The IndexOf method is used to get the position of the equals character in the string. A chamada para o Substring(Int32, Int32) método extrai o nome da chave, que inicia a partir do primeiro caractere na cadeia de caracteres e se estende para o número de caracteres retornada pela chamada para o IndexOf método.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. A chamada para o Substring(Int32) método, em seguida, extrai o valor atribuído à chave.The call to the Substring(Int32) method then extracts the value assigned to the key. Ele começa em uma posição de caractere depois o caractere de igual e estende até o final da cadeia de caracteres.It starts at one character position beyond the equals character and extends to the end of the string.

Comentários

Você chama o Substring(Int32) método para extrair uma subcadeia de caracteres de uma cadeia de caracteres que começa em uma posição de caractere especificado e termina no final da cadeia de caracteres.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. A posição do caractere inicial é baseado em zero; em outras palavras, o primeiro caractere na cadeia de caracteres está no índice 0, o índice 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. Para extrair uma subcadeia de caracteres que começa em uma posição de caractere especificado e termina antes do final da cadeia de caracteres, chame o Substring(Int32, Int32) método.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.

Observação

Este método não altera o valor da instância atual.This method does not modify the value of the current instance. Em vez disso, ele retorna uma nova cadeia de caracteres que começa no startIndex posição na cadeia de caracteres atual.Instead, it returns a new string that begins at the startIndex position in the current string.

Para extrair uma subcadeia de caracteres que começa com um determinado caractere ou sequência de caracteres, chame um método como IndexOf ou IndexOf para obter o valor de 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. O segundo exemplo ilustra isso. ele extrai um valor de chave que inicia uma posição de caractere após o caractere "=".The second example illustrates this; it extracts a key value that begins one character position after the "=" character.

Se startIndex é igual a zero, o método retorna a cadeia de caracteres original inalterada.If startIndex is equal to zero, the method returns the original string unchanged.

Veja também

Substring(Range) Substring(Range) Substring(Range)

public:
 System::String ^ Substring(Range range);
public string Substring (Range range);
member this.Substring : Range -> string

Parâmetros

Retornos

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

Recupera uma subcadeia de caracteres desta instância.Retrieves a substring from this instance. A subcadeia de caracteres começa em uma posição de caractere especificado e tem um comprimento especificado.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

Parâmetros

startIndex
Int32 Int32 Int32 Int32

A posição de caractere de início de base zero de uma subcadeia de caracteres nesta instância.The zero-based starting character position of a substring in this instance.

length
Int32 Int32 Int32 Int32

O número de caracteres na subcadeia de caracteres.The number of characters in the substring.

Retornos

Uma cadeia de caracteres é equivalente à subcadeia de caracteres de comprimento length que começa em startIndex nessa instância, ou Empty, se startIndex for igual ao comprimento dessa instância e length for 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.

Exceções

A soma de startIndex e length indica uma posição que não está dentro dessa instância.startIndex plus length indicates a position not within this instance.

- ou --or- startIndex ou length é menor que zero.startIndex or length is less than zero.

Exemplos

O exemplo a seguir ilustra uma chamada simples para o Substring(Int32, Int32) método que extrai os dois caracteres de uma cadeia de caracteres começando na sexta posição de caractere (isto é, no índice cinco).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

O exemplo a seguir usa o Substring(Int32, Int32) método em três casos a seguir para isolar as subcadeias de caracteres dentro de uma cadeia de caracteres.The following example uses the Substring(Int32, Int32) method in the following three cases to isolate substrings within a string. Nos dois casos as subcadeias de caracteres são usadas em comparações e o terceiro caso uma exceção é gerada porque parâmetros inválidos foram especificados.In two cases the substrings are used in comparisons, and in the third case an exception is thrown because invalid parameters are specified.

  • Ele extrai o caractere único e a terceira posição na cadeia de caracteres (no índice 2) e o compara com um "c".It extracts the single character and the third position in the string (at index 2) and compares it with a "c". Essa comparação retorna true.This comparison returns true.

  • Ele extrai caracteres começando na quarta posição na cadeia de caracteres (no índice 3) e passa-o para o IsNullOrEmpty método.It extracts zero characters starting at the fourth position in the string (at index 3) and passes it to the IsNullOrEmpty method. Isso retorna true, porque a chamada para o Substring retorno do método String.Empty.This returns true because the call to the Substring method returns String.Empty.

  • Ele tenta extrair um caractere começando na quarta posição na cadeia de caracteres.It attempts to extract one character starting at the fourth position in the string. Como não há nenhum caractere nessa posição, a chamada de método lança um ArgumentOutOfRangeException exceção.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

O exemplo a seguir usa o Substring método para separar os pares chave/valor que são delimitados por igual a caractere ("=").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'

O IndexOf método é usado para obter a posição do caractere de igual na cadeia de caracteres.The IndexOf method is used to get the position of the equals character in the string. A chamada para o Substring(Int32, Int32) método extrai o nome da chave, que inicia a partir do primeiro caractere na cadeia de caracteres e se estende para o número de caracteres retornada pela chamada para o IndexOf método.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. A chamada para o Substring(Int32) método, em seguida, extrai o valor atribuído à chave.The call to the Substring(Int32) method then extracts the value assigned to the key. Ele começa em uma posição de caractere depois o caractere de igual e estende até o final da cadeia de caracteres.It starts at one character position beyond the equals character and extends to the end of the string.

Comentários

Você chama o Substring(Int32, Int32) método para extrair uma subcadeia de caracteres de uma cadeia de caracteres que começa em uma posição de caractere especificado e termina antes do final da cadeia de caracteres.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. A posição do caractere inicial é baseado em zero; em outras palavras, o primeiro caractere na cadeia de caracteres está no índice 0, o índice 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. Para extrair uma subcadeia de caracteres que começa na posição do caractere especificada e continua até o final da cadeia de caracteres, chame o Substring(Int32) método.To extract a substring that begins at a specified character position and continues to the end of the string, call the Substring(Int32) method.

Observação

Este método não altera o valor da instância atual.This method does not modify the value of the current instance. Em vez disso, ele retorna uma nova cadeia de caracteres com length caracteres a partir de startIndex posição na cadeia de caracteres atual.Instead, it returns a new string with length characters starting from the startIndex position in the current string.

O length parâmetro representa o número total de caracteres a serem extraídos da instância atual de cadeia de caracteres.The length parameter represents the total number of characters to extract from the current string instance. Isso inclui o caractere inicial foi encontrado no índice startIndex.This includes the starting character found at index startIndex. Em outras palavras, o Substring método tenta extrair caracteres de índice startIndex índice startIndex + length - 1.In other words, the Substring method attempts to extract characters from index startIndex to index startIndex + length - 1.

Para extrair uma subcadeia de caracteres que começa com um determinado caractere ou sequência de caracteres, chame um método como IndexOf ou LastIndexOf para obter o valor de 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.

Se a subcadeia de caracteres se estende do startIndex a uma sequência de caracteres especificada, você pode chamar um método, como IndexOf ou LastIndexOf para obter o índice do caractere final ou sequência de caracteres.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. Em seguida, você pode converter esse valor em uma posição de índice na cadeia de caracteres da seguinte maneira:You can then convert that value to an index position in the string as follows:

  • Se você procurar por um único caractere que é marcar o final da subcadeia de caracteres, o length for igual ao parâmetro endIndex - startIndex + 1, onde endIndex é o valor de retorno a IndexOf ou IndexOf método.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. O exemplo a seguir extrai um bloco contínuo de caracteres "b" de uma cadeia de caracteres.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
    
  • Se você já procurou por vários caracteres que são marcar o final da subcadeia de caracteres, o length for igual ao parâmetro endIndex + endMatchLength - startIndex, onde endIndex é o valor retornado do IndexOf ou IndexOf método, e endMatchLength é o comprimento da sequência de caracteres que marca o final da subcadeia de caracteres.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. O exemplo a seguir extrai um bloco de texto que contém um XML <definition> elemento.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>
    
  • Se o caractere ou cadeia de caracteres não está incluída no final da subcadeia de caracteres, o length for igual ao parâmetro endIndex - startIndex, onde endIndex é o valor de retorno a IndexOf ou IndexOf método.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.

Se startIndex é igual a zero e é igual a, o comprimento da cadeia de caracteres atual, o método retorna a cadeia de caracteres original inalterada.If startIndex is equal to zero and equals the length of the current string, the method returns the original string unchanged.

Veja também

Aplica-se a