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

Définition

Récupère une sous-chaîne de cette instance.Retrieves a substring from this instance.

Ce membre est surchargé.This member is overloaded. Pour obtenir des informations complètes sur ce membre, y compris sa syntaxe, son utilisation et des exemples s'y rapportant, cliquez sur un nom dans la liste de surcharge.For complete information about this member, including syntax, usage, and examples, click a name in the overload list.

Surcharges

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

Récupère une sous-chaîne de cette instance.Retrieves a substring from this instance. La sous-chaîne commence à une position de caractère spécifiée et continue jusqu'à la fin de la chaîne.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)

Récupère une sous-chaîne de cette instance.Retrieves a substring from this instance. La sous-chaîne commence à une position de caractère spécifiée et sa longueur est définie.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

Paramètres

startIndex
Index Index Index Index

Retours

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

Récupère une sous-chaîne de cette instance.Retrieves a substring from this instance. La sous-chaîne commence à une position de caractère spécifiée et continue jusqu'à la fin de la chaîne.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

Paramètres

startIndex
Int32 Int32 Int32 Int32

Position de caractère de départ de base zéro d'une sous-chaîne dans cette instance.The zero-based starting character position of a substring in this instance.

Retours

Chaîne équivalente à la sous-chaîne qui commence à startIndex dans cette instance ou Empty si startIndex est égal à la longueur de cette 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.

Exceptions

startIndex est inférieur à zéro ou supérieur à la longueur de cette instance.startIndex is less than zero or greater than the length of this instance.

Exemples

L’exemple suivant montre comment obtenir une sous-chaîne à partir d’une chaîne.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

L’exemple suivant utilise le Substring (méthode) pour séparer les paires clé/valeur qui sont délimitées par une est égal à caractère (« = »).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'

Le IndexOf méthode est utilisée pour obtenir la position du caractère égal dans la chaîne.The IndexOf method is used to get the position of the equals character in the string. L’appel à la Substring(Int32, Int32) méthode extrait le nom de clé, qui commence au premier caractère dans la chaîne et s’étend sur le nombre de caractères retournés par l’appel à la IndexOf (méthode).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. L’appel à la Substring(Int32) méthode extrait ensuite la valeur assignée à la clé.The call to the Substring(Int32) method then extracts the value assigned to the key. Il démarre à une position de caractère au-delà du caractère equals et s’étend à la fin de la chaîne.It starts at one character position beyond the equals character and extends to the end of the string.

Remarques

Vous appelez le Substring(Int32) méthode pour extraire une sous-chaîne d’une chaîne qui commence à une position de caractère spécifié et se termine à la fin de la chaîne.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 position de caractère de départ est de base zéro ; en d’autres termes, le premier caractère dans la chaîne est à l’index 0, pas l’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. Pour extraire une sous-chaîne qui commence à une position de caractère spécifié et se termine avant la fin de la chaîne, appelez le Substring(Int32, Int32) (méthode).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.

Notes

Cette méthode ne modifie pas la valeur de l’instance actuelle.This method does not modify the value of the current instance. Au lieu de cela, il retourne une nouvelle chaîne qui commence à la startIndex position dans la chaîne actuelle.Instead, it returns a new string that begins at the startIndex position in the current string.

Pour extraire une sous-chaîne qui commence par un caractère particulier ou d’une séquence de caractères, appeler une méthode telle que IndexOf ou IndexOf pour obtenir la valeur 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. Le deuxième exemple illustre cela ; Il extrait une valeur de clé qui commence à une position de caractère après le caractère « = ».The second example illustrates this; it extracts a key value that begins one character position after the "=" character.

Si startIndex est égal à zéro, la méthode retourne la chaîne d’origine est inchangée.If startIndex is equal to zero, the method returns the original string unchanged.

Voir aussi

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

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

Paramètres

Retours

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

Récupère une sous-chaîne de cette instance.Retrieves a substring from this instance. La sous-chaîne commence à une position de caractère spécifiée et sa longueur est définie.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

Paramètres

startIndex
Int32 Int32 Int32 Int32

Position de caractère de départ de base zéro d'une sous-chaîne dans cette instance.The zero-based starting character position of a substring in this instance.

length
Int32 Int32 Int32 Int32

Nombre de caractères dans la sous-chaîne.The number of characters in the substring.

Retours

Chaîne équivalente à la sous-chaîne de longueur length qui commence à startIndex dans cette instance ou Empty si startIndex est égal à la longueur de cette instance et length a la valeur zéro.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.

Exceptions

startIndex plus length indique une position qui n’est pas dans cette instance.startIndex plus length indicates a position not within this instance.

ou-or- startIndex ou length est inférieur à zéro.startIndex or length is less than zero.

Exemples

L’exemple suivant illustre un simple appel à la Substring(Int32, Int32) méthode qui extrait les deux caractères d’une chaîne en commençant à la sixième position de caractère (autrement dit, à l’index cinq).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

L’exemple suivant utilise la Substring(Int32, Int32) méthode dans les trois cas suivants pour isoler des sous-chaînes dans une chaîne.The following example uses the Substring(Int32, Int32) method in the following three cases to isolate substrings within a string. Dans les deux cas les sous-chaînes sont utilisées dans les comparaisons, et dans le troisième cas une exception est levée, car les paramètres non valides sont spécifiés.In two cases the substrings are used in comparisons, and in the third case an exception is thrown because invalid parameters are specified.

  • Il extrait le caractère unique et la troisième position dans la chaîne (à l’index 2) et la compare à un « c ».It extracts the single character and the third position in the string (at index 2) and compares it with a "c". Cette comparaison retourne true.This comparison returns true.

  • Il extrait zéro caractères en commençant à la quatrième position dans la chaîne (à l’index 3) et le transmet à la IsNullOrEmpty (méthode).It extracts zero characters starting at the fourth position in the string (at index 3) and passes it to the IsNullOrEmpty method. Cette fonction retourne true, car l’appel à la Substring retourne de la méthode String.Empty.This returns true because the call to the Substring method returns String.Empty.

  • Il tente d’extraire un seul caractère, en commençant à la quatrième position dans la chaîne.It attempts to extract one character starting at the fourth position in the string. Étant donné qu’aucun caractère à cette position, l’appel de méthode lève un ArgumentOutOfRangeException exception.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

L’exemple suivant utilise le Substring (méthode) pour séparer les paires clé/valeur qui sont délimitées par une est égal à caractère (« = »).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'

Le IndexOf méthode est utilisée pour obtenir la position du caractère égal dans la chaîne.The IndexOf method is used to get the position of the equals character in the string. L’appel à la Substring(Int32, Int32) méthode extrait le nom de clé, qui commence au premier caractère dans la chaîne et s’étend sur le nombre de caractères retournés par l’appel à la IndexOf (méthode).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. L’appel à la Substring(Int32) méthode extrait ensuite la valeur assignée à la clé.The call to the Substring(Int32) method then extracts the value assigned to the key. Il démarre à une position de caractère au-delà du caractère equals et s’étend à la fin de la chaîne.It starts at one character position beyond the equals character and extends to the end of the string.

Remarques

Vous appelez le Substring(Int32, Int32) méthode pour extraire une sous-chaîne d’une chaîne qui commence à une position de caractère spécifié et se termine avant la fin de la chaîne.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 position de caractère de départ est de base zéro ; en d’autres termes, le premier caractère dans la chaîne est à l’index 0, pas l’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. Pour extraire une sous-chaîne qui commence à une position de caractère spécifiée et continue jusqu'à la fin de la chaîne, appelez le Substring(Int32) (méthode).To extract a substring that begins at a specified character position and continues to the end of the string, call the Substring(Int32) method.

Notes

Cette méthode ne modifie pas la valeur de l’instance actuelle.This method does not modify the value of the current instance. Au lieu de cela, il retourne une nouvelle chaîne avec length caractères à partir de la startIndex position dans la chaîne actuelle.Instead, it returns a new string with length characters starting from the startIndex position in the current string.

Le length paramètre représente le nombre total de caractères à extraire à partir de l’instance actuelle de la chaîne.The length parameter represents the total number of characters to extract from the current string instance. Cela inclut le caractère de début située à l’index startIndex.This includes the starting character found at index startIndex. En d’autres termes, le Substring méthode tente d’extraire des caractères à partir de l’index startIndex à index startIndex + length - 1.In other words, the Substring method attempts to extract characters from index startIndex to index startIndex + length - 1.

Pour extraire une sous-chaîne qui commence par un caractère particulier ou d’une séquence de caractères, appeler une méthode telle que IndexOf ou LastIndexOf pour obtenir la valeur 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 sous-chaîne s’étend de startIndex à une séquence de caractères spécifié, vous pouvez appeler une méthode comme IndexOf ou LastIndexOf pour obtenir l’index de caractère de fin ou de la séquence de caractères.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. Vous pouvez ensuite convertir en cette valeur à une position d’index dans la chaîne comme suit :You can then convert that value to an index position in the string as follows:

  • Si vous avez effectué une recherche pour un caractère unique qui consiste à marquer la fin de la sous-chaîne, la length paramètre est égal à endIndex - startIndex + 1, où endIndex est la valeur de retour de la IndexOf ou IndexOf méthode.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. L’exemple suivant extrait un bloc continu de caractères « b » d’une chaîne.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 vous avez effectué une recherche pour plusieurs caractères qui sont pour marquer la fin de la sous-chaîne, la length paramètre est égal à endIndex + endMatchLength - startIndex, où endIndex est la valeur de retour de la IndexOf ou IndexOf (méthode), et endMatchLength est la longueur de la séquence de caractères qui marque la fin de la sous-chaîne.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. L’exemple suivant extrait un bloc de texte qui contient un document XML <definition> élément.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 le caractère ou séquence de caractères n’est pas inclus dans la fin de la sous-chaîne, la length paramètre est égal à endIndex - startIndex, où endIndex est la valeur de retour de la IndexOf ou IndexOf méthode.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 est égal à zéro et est égale à la longueur de la chaîne actuelle, la méthode retourne la chaîne d’origine est inchangée.If startIndex is equal to zero and equals the length of the current string, the method returns the original string unchanged.

Voir aussi

S’applique à