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

Definizione

Recupera una sottostringa da questa istanza.Retrieves a substring from this instance.

Si tratta di un membro di overload.This member is overloaded. Per informazioni complete su questo membro, inclusi la sintassi, l'uso e gli esempi, fare clic su un nome nell'elenco degli overload.For complete information about this member, including syntax, usage, and examples, click a name in the overload list.

Overload

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

Recupera una sottostringa da questa istanza.Retrieves a substring from this instance. La sottostringa inizia in corrispondenza di un carattere specificato e continua fino alla fine della stringa.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 sottostringa da questa istanza.Retrieves a substring from this instance. La sottostringa inizia in corrispondenza della posizione del carattere specificata e ha la lunghezza specificata.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

Parametri

startIndex
Index Index Index Index

Restituisce

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

Recupera una sottostringa da questa istanza.Retrieves a substring from this instance. La sottostringa inizia in corrispondenza di un carattere specificato e continua fino alla fine della stringa.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

Parametri

startIndex
Int32 Int32 Int32 Int32

Posizione iniziale in base zero del carattere di una sottostringa in questa istanza.The zero-based starting character position of a substring in this instance.

Restituisce

Stringa equivalente alla sottostringa che inizia in corrispondenza di startIndex in questa istanza oppure Empty se startIndex è uguale alla lunghezza di questa istanza.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.

Eccezioni

startIndex è minore di zero o maggiore della lunghezza di questa istanza.startIndex is less than zero or greater than the length of this instance.

Esempi

Nell'esempio seguente viene illustrato come ottenere una sottostringa da una stringa.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'esempio seguente usa il Substring metodo per separare le coppie chiave/valore delimitate da un uguale a carattere ("=").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'

Il IndexOf metodo viene utilizzato per ottenere la posizione del carattere è uguale a nella stringa.The IndexOf method is used to get the position of the equals character in the string. La chiamata ai Substring(Int32, Int32) metodo estrae il nome della chiave, che inizia dal primo carattere nella stringa e si estende per il numero di caratteri restituito dalla chiamata al metodo il IndexOf (metodo).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 chiamata al Substring(Int32) metodo estrae quindi il valore assegnato alla chiave.The call to the Substring(Int32) method then extracts the value assigned to the key. Inizia in una posizione del carattere di là del carattere è uguale a e si estende alla fine della stringa.It starts at one character position beyond the equals character and extends to the end of the string.

Commenti

Si chiama il Substring(Int32) metodo per estrarre una sottostringa da una stringa che inizia alla posizione del carattere specificato e termina alla fine della stringa.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. Posizione del carattere iniziale è in base zero; in altre parole, il primo carattere nella stringa è in corrispondenza dell'indice 0, non dell'indice 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. Per estrarre una sottostringa che inizia alla posizione del carattere specificato e termina prima della fine della stringa, chiamare il Substring(Int32, Int32) (metodo).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

Questo metodo non modifica il valore dell'istanza corrente.This method does not modify the value of the current instance. Al contrario, restituisce una nuova stringa che inizia in corrispondenza di startIndex posizione nella stringa corrente.Instead, it returns a new string that begins at the startIndex position in the current string.

Per estrarre una sottostringa che inizia con un determinato carattere o sequenza di caratteri, chiamare un metodo, ad esempio IndexOf oppure IndexOf per ottenere il valore di 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. Nel secondo esempio viene illustrato questo oggetto. estrae un valore di chiave che inizia una posizione di carattere dopo il carattere "=".The second example illustrates this; it extracts a key value that begins one character position after the "=" character.

Se startIndex è uguale a zero, il metodo restituisce la stringa originale invariata.If startIndex is equal to zero, the method returns the original string unchanged.

Vedi anche

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

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

Parametri

Restituisce

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

Recupera una sottostringa da questa istanza.Retrieves a substring from this instance. La sottostringa inizia in corrispondenza della posizione del carattere specificata e ha la lunghezza specificata.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

Parametri

startIndex
Int32 Int32 Int32 Int32

Posizione iniziale in base zero del carattere di una sottostringa in questa istanza.The zero-based starting character position of a substring in this instance.

length
Int32 Int32 Int32 Int32

Numero di caratteri nella sottostringa.The number of characters in the substring.

Restituisce

Stringa equivalente alla sottostringa di lunghezza length che inizia in corrispondenza di startIndex in questa istanza oppure Empty se startIndex è uguale alla lunghezza di questa istanza e length è 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.

Eccezioni

La somma di startIndex e length indica una posizione non all'interno di questa istanza.startIndex plus length indicates a position not within this instance.

In alternativa-or- startIndex o length è minore di zero.startIndex or length is less than zero.

Esempi

L'esempio seguente illustra una semplice chiamata al Substring(Int32, Int32) metodo che estrae i due caratteri da una stringa che inizia nella posizione del carattere sesta (vale a dire, in corrispondenza dell'indice cinque).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'esempio seguente usa il Substring(Int32, Int32) metodo nei tre casi seguenti per isolare le sottostringhe all'interno di una stringa.The following example uses the Substring(Int32, Int32) method in the following three cases to isolate substrings within a string. Nei due casi vengono utilizzate le sottostringhe nei confronti e nel terzo caso viene generata un'eccezione perché sono stati specificati parametri non validi.In two cases the substrings are used in comparisons, and in the third case an exception is thrown because invalid parameters are specified.

  • Estrae il carattere singolo e alla terza posizione nella stringa (in corrispondenza dell'indice 2) e lo confronta con "c".It extracts the single character and the third position in the string (at index 2) and compares it with a "c". Restituisce questo confronto true.This comparison returns true.

  • Estrae zero caratteri a partire dalla quarta posizione nella stringa (in corrispondenza dell'indice 3) e lo passa al IsNullOrEmpty (metodo).It extracts zero characters starting at the fourth position in the string (at index 3) and passes it to the IsNullOrEmpty method. Restituisce true perché la chiamata per il Substring restituzione del metodo String.Empty.This returns true because the call to the Substring method returns String.Empty.

  • Tenta di estrarre un carattere a partire dalla posizione quarto nella stringa.It attempts to extract one character starting at the fourth position in the string. Poiché non è presente alcun carattere in quella posizione, la chiamata al metodo genera un ArgumentOutOfRangeException eccezione.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'esempio seguente usa il Substring metodo per separare le coppie chiave/valore delimitate da un uguale a carattere ("=").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'

Il IndexOf metodo viene utilizzato per ottenere la posizione del carattere è uguale a nella stringa.The IndexOf method is used to get the position of the equals character in the string. La chiamata ai Substring(Int32, Int32) metodo estrae il nome della chiave, che inizia dal primo carattere nella stringa e si estende per il numero di caratteri restituito dalla chiamata al metodo il IndexOf (metodo).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 chiamata al Substring(Int32) metodo estrae quindi il valore assegnato alla chiave.The call to the Substring(Int32) method then extracts the value assigned to the key. Inizia in una posizione del carattere di là del carattere è uguale a e si estende alla fine della stringa.It starts at one character position beyond the equals character and extends to the end of the string.

Commenti

Si chiama il Substring(Int32, Int32) metodo per estrarre una sottostringa da una stringa che inizia alla posizione del carattere specificato e termina prima della fine della stringa.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. Posizione del carattere iniziale è in base zero; in altre parole, il primo carattere nella stringa è in corrispondenza dell'indice 0, non dell'indice 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. Per estrarre una sottostringa che inizia nella posizione del carattere specificata e continua fino alla fine della stringa, chiamare il Substring(Int32) (metodo).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

Questo metodo non modifica il valore dell'istanza corrente.This method does not modify the value of the current instance. Al contrario, restituisce una nuova stringa con length caratteri a partire dal startIndex posizione nella stringa corrente.Instead, it returns a new string with length characters starting from the startIndex position in the current string.

Il length parametro rappresenta il numero totale di caratteri da estrarre dall'istanza della stringa corrente.The length parameter represents the total number of characters to extract from the current string instance. Ciò include il carattere iniziale in corrispondenza dell'indice startIndex.This includes the starting character found at index startIndex. In altre parole, il Substring metodo tenta di estrarre i caratteri dall'indice startIndex all'indice startIndex + length - 1.In other words, the Substring method attempts to extract characters from index startIndex to index startIndex + length - 1.

Per estrarre una sottostringa che inizia con un determinato carattere o sequenza di caratteri, chiamare un metodo, ad esempio IndexOf oppure LastIndexOf per ottenere il valore di 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 la sottostringa si estende da startIndex a una sequenza di caratteri specificato, è possibile chiamare un metodo, ad esempio IndexOf o LastIndexOf per ottenere l'indice del carattere finale o sequenza di caratteri.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. È possibile convertire tale valore in una posizione di indice nella stringa come indicato di seguito:You can then convert that value to an index position in the string as follows:

  • Se è stata eseguita la ricerca per un singolo carattere che è possibile contrassegnare la fine della sottostringa, il length parametro è uguale a endIndex - startIndex + 1, dove endIndex è il valore restituito del IndexOf o IndexOf metodo.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. Nell'esempio seguente estrae un blocco continuo di caratteri "b" da una stringa.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 è stato cercato più caratteri che sono possibile contrassegnare la fine della sottostringa, il length parametro è uguale a endIndex + endMatchLength - startIndex, dove endIndex è il valore restituito del IndexOf oppure IndexOf metodo, e endMatchLength è la lunghezza della sequenza di caratteri che contrassegna la fine della sottostringa.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'esempio seguente estrae un blocco di testo che contiene un file 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 il carattere o sequenza di caratteri non è incluso alla fine della sottostringa, il length parametro è uguale a endIndex - startIndex, dove endIndex è il valore restituito del IndexOf o IndexOf metodo.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 è uguale a zero e uguale alla lunghezza della stringa corrente, il metodo restituisce la stringa originale invariata.If startIndex is equal to zero and equals the length of the current string, the method returns the original string unchanged.

Vedi anche

Si applica a