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

Definición

Recupera una subcadena de la instancia.Retrieves a substring from this instance.

Este miembro está sobrecargado.This member is overloaded. Para obtener información completa sobre este miembro, incluida la sintaxis, el uso y algunos ejemplos, haga clic en un nombre de la lista de sobrecarga.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 una subcadena de la instancia.Retrieves a substring from this instance. La subcadena empieza en una posición de caracteres especificada y continúa hasta el final de la cadena.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 una subcadena de la instancia.Retrieves a substring from this instance. La subcadena comienza en una posición de carácter especificada y tiene una longitud especificada.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

Devoluciones

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

Recupera una subcadena de la instancia.Retrieves a substring from this instance. La subcadena empieza en una posición de caracteres especificada y continúa hasta el final de la cadena.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

Posición de carácter inicial de base cero de una subcadena en la instancia.The zero-based starting character position of a substring in this instance.

Devoluciones

Cadena equivalente a la subcadena que comienza en el valor de startIndex de esta instancia, o bien, Empty si el valor de startIndex es igual a la longitud de esta instancia.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.

Excepciones

startIndex es menor que cero o mayor que la longitud de esta instancia.startIndex is less than zero or greater than the length of this instance.

Ejemplos

El ejemplo siguiente muestra cómo obtener una subcadena de una cadena.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

En el ejemplo siguiente se usa el Substring método para separar los pares clave-valor que están delimitados por es igual a carácter ("=").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'

El IndexOf método se usa para obtener la posición del carácter es igual a en la cadena.The IndexOf method is used to get the position of the equals character in the string. La llamada a la Substring(Int32, Int32) método extrae el nombre de clave, que se inicia desde el primer carácter de la cadena y amplía el número de caracteres devueltos por la llamada a la 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. La llamada a la Substring(Int32) método, a continuación, extrae el valor asignado a la clave.The call to the Substring(Int32) method then extracts the value assigned to the key. Se inicia en una posición de caracteres situados después del carácter es igual a y se extiende hasta el final de la cadena.It starts at one character position beyond the equals character and extends to the end of the string.

Comentarios

Se llama a la Substring(Int32) método para extraer una subcadena de una cadena que comienza en una posición de carácter especificado y termina al final de la cadena.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. La posición del carácter inicial está basado en cero; en otras palabras, el primer carácter de la cadena está en el índice 0, no el í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 extraer una subcadena que comienza en una posición de carácter especificado y termina antes del final de la cadena, llame a la 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.

Nota

Este método no modifica el valor de la instancia actual.This method does not modify the value of the current instance. En su lugar, devuelve una nueva cadena que comienza en la startIndex posición en la cadena actual.Instead, it returns a new string that begins at the startIndex position in the current string.

Para extraer una subcadena que comienza con un determinado carácter o secuencia de caracteres, llamar a un método como IndexOf o IndexOf para obtener el 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. El segundo ejemplo muestra cómo hacerlo; extrae un valor de clave que se inicia una posición de carácter después del carácter "=".The second example illustrates this; it extracts a key value that begins one character position after the "=" character.

Si startIndex es igual a cero, el método devuelve la cadena original sin cambios.If startIndex is equal to zero, the method returns the original string unchanged.

Consulte también:

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

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

Parámetros

Devoluciones

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

Recupera una subcadena de la instancia.Retrieves a substring from this instance. La subcadena comienza en una posición de carácter especificada y tiene una longitud especificada.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

Posición de carácter inicial de base cero de una subcadena en la instancia.The zero-based starting character position of a substring in this instance.

length
Int32 Int32 Int32 Int32

Número de caracteres de la subcadena.The number of characters in the substring.

Devoluciones

Cadena equivalente a la subcadena de longitud de length que comienza en el valor de startIndex de esta instancia, o bien, Empty si el valor de startIndex es igual a la longitud de esta instancia y el valor de length es cero.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.

Excepciones

startIndex más length indica una posición fuera de esta instancia.startIndex plus length indicates a position not within this instance.

o bien-or- startIndex o length es menor que cero.startIndex or length is less than zero.

Ejemplos

El ejemplo siguiente muestra una llamada sencilla a la Substring(Int32, Int32) método que extrae los dos caracteres de una cadena a partir de la sexta posición de carácter (es decir, en el í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

En el ejemplo siguiente se usa el Substring(Int32, Int32) método en los tres casos siguientes para aislar las subcadenas dentro de una cadena.The following example uses the Substring(Int32, Int32) method in the following three cases to isolate substrings within a string. En dos casos se usan las subcadenas en las comparaciones y en el tercer caso se produce una excepción porque se especificaron parámetros no válidos.In two cases the substrings are used in comparisons, and in the third case an exception is thrown because invalid parameters are specified.

  • Extrae el carácter único y la tercera posición en la cadena (en el índice 2) y lo compara con una "c".It extracts the single character and the third position in the string (at index 2) and compares it with a "c". Esta comparación devuelve true.This comparison returns true.

  • Extrae cero caracteres a partir de la cuarta posición de la cadena (en el índice 3) y lo pasa a la 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. Esto devuelve true porque la llamada a la Substring devuelve del método String.Empty.This returns true because the call to the Substring method returns String.Empty.

  • Intenta extraer un carácter que comienza en la cuarta posición de la cadena.It attempts to extract one character starting at the fourth position in the string. Dado que no hay ningún carácter en esa posición, la llamada al método produce una ArgumentOutOfRangeException excepción.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

En el ejemplo siguiente se usa el Substring método para separar los pares clave-valor que están delimitados por es igual a carácter ("=").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'

El IndexOf método se usa para obtener la posición del carácter es igual a en la cadena.The IndexOf method is used to get the position of the equals character in the string. La llamada a la Substring(Int32, Int32) método extrae el nombre de clave, que se inicia desde el primer carácter de la cadena y amplía el número de caracteres devueltos por la llamada a la 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. La llamada a la Substring(Int32) método, a continuación, extrae el valor asignado a la clave.The call to the Substring(Int32) method then extracts the value assigned to the key. Se inicia en una posición de caracteres situados después del carácter es igual a y se extiende hasta el final de la cadena.It starts at one character position beyond the equals character and extends to the end of the string.

Comentarios

Se llama a la Substring(Int32, Int32) método para extraer una subcadena de una cadena que comienza en una posición de carácter especificado y termina antes del final de la cadena.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. La posición del carácter inicial está basado en cero; en otras palabras, el primer carácter de la cadena está en el índice 0, no el í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 extraer una subcadena que comienza en una posición de carácter especificada y continúa hasta el final de la cadena, llame a la 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.

Nota

Este método no modifica el valor de la instancia actual.This method does not modify the value of the current instance. En su lugar, devuelve una nueva cadena con length caracteres a partir de la startIndex posición en la cadena actual.Instead, it returns a new string with length characters starting from the startIndex position in the current string.

El length parámetro representa el número total de caracteres que se va a extraer de la instancia actual de la cadena.The length parameter represents the total number of characters to extract from the current string instance. Esto incluye el carácter inicial que se encuentra en el índice startIndex.This includes the starting character found at index startIndex. En otras palabras, el Substring método intenta extraer caracteres de índice startIndex al índice startIndex + length - 1.In other words, the Substring method attempts to extract characters from index startIndex to index startIndex + length - 1.

Para extraer una subcadena que comienza con un determinado carácter o secuencia de caracteres, llamar a un método como IndexOf o LastIndexOf para obtener el 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.

Si la subcadena que se extiende desde startIndex a una secuencia de caracteres especificado, se puede llamar a un método como IndexOf o LastIndexOf para obtener el índice del carácter final o la secuencia 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. A continuación, puede convertir ese valor a una posición de índice en la cadena como sigue:You can then convert that value to an index position in the string as follows:

  • Si ha buscado para un único carácter que va a marcar el final de la subcadena, el length parámetro es igual a endIndex - startIndex + 1, donde endIndex es el valor devuelto de la IndexOf o 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. El ejemplo siguiente extrae un bloque continuo de los caracteres "b" de una cadena.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
    
  • Si ha buscado para varios caracteres que son marcar el final de la subcadena, el length parámetro es igual a endIndex + endMatchLength - startIndex, donde endIndex es el valor devuelto de la IndexOf o IndexOf método, y endMatchLength es la longitud de la secuencia de caracteres que marca el final de la subcadena.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. En el ejemplo siguiente se extrae un bloque de texto que contiene un documento 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>
    
  • Si no se incluye el carácter o secuencia de caracteres al final de la subcadena, el length parámetro es igual a endIndex - startIndex, donde endIndex es el valor devuelto de la IndexOf o 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.

Si startIndex es igual a cero y es igual a la longitud de la cadena actual, el método devuelve la cadena original sin cambios.If startIndex is equal to zero and equals the length of the current string, the method returns the original string unchanged.

Consulte también:

Se aplica a