Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

String.Substring-Methode: (Int32, Int32)

 

Veröffentlicht: Juli 2016

Ruft eine Teilzeichenfolge dieser Instanz ab. Die Teilzeichenfolge beginnt an einer angegebenen Zeichenposition und hat eine angegebene Länge.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public string Substring(
	int startIndex,
	int length
)

Parameter

startIndex
Type: System.Int32

Die nullbasierte Anfangsposition einer Teilzeichenfolge innerhalb dieser Instanz.

length
Type: System.Int32

Die Anzahl der Zeichen in der Teilzeichenfolge.

Rückgabewert

Type: System.String

Eine Zeichenfolge, die der Teilzeichenfolge mit der Länge length ab startIndex in dieser Instanz entspricht, oder Empty, wenn startIndex gleich der Länge dieser Instanz und length 0 (null) ist.

Exception Condition
ArgumentOutOfRangeException

startIndex plus length gibt eine Position außerhalb dieser Instanz an.

- oder -

startIndex oder length ist kleiner als 0 (null).

Rufen Sie die Substring(Int32, Int32) Methode, um eine Unterzeichenfolge aus einer Zeichenfolge zu extrahieren, die an einer angegebenen Zeichenposition beginnt und endet vor dem Ende der Zeichenfolge. Die Anfangsposition ist eine nullbasiert. Das heißt, ist das erste Zeichen in der Zeichenfolge am Index 0 (null) nicht Index 1 ein. Um eine Teilzeichenfolge, die an einer angegebenen Zeichenposition beginnt und bis zum Ende der Zeichenfolge zu extrahieren, rufen Sie die Substring(Int32) Methode.

System_CAPS_noteHinweis

Diese Methode ändert nicht den Wert der aktuellen Instanz. Stattdessen gibt es eine neue Zeichenfolge mit length Zeichen ab der der startIndex Position in der aktuellen Zeichenfolge.

Die length Parameter stellt die Gesamtzahl der Zeichen, die aus der aktuellen Zeichenfolgeninstanz zu extrahieren. Dies schließt das erste Zeichen am Index gefunden startIndex. Das heißt, die Substring Methode versucht, das Extrahieren von Zeichen aus dem Index startIndex Index startIndex + length - 1.

Um eine Teilzeichenfolge extrahiert, die mit einem bestimmten Zeichen oder die Zeichenfolge beginnt, eine Methode aufrufen, z. B. IndexOf oder LastIndexOf zum Abrufen des Werts startIndex.

Wenn die Teilzeichenfolge vom erstreckt startIndex auf eine angegebene Zeichenfolge können Sie z. B. eine Methode aufrufen IndexOf oder LastIndexOf den Index der Endzeichen oder Zeichenfolge abgerufen. Sie können dann wie folgt diesen Wert an eine Indexposition in der Zeichenfolge konvertieren:

  • Wenn Sie ein einzelnes Zeichen gesucht haben, das das Ende der Teilzeichenfolge, markieren der length entspricht endIndex - startIndex + 1, in dem endIndex ist der Rückgabewert von der IndexOf oder IndexOf Methode. Das folgende Beispiel extrahiert einen kontinuierlichen Speicherplatzblock "b"-Zeichen aus einer Zeichenfolge.

    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
    
  • Wenn Sie mehrere Zeichen gesucht haben, die das Ende der Teilzeichenfolge, markieren das length entspricht endIndex + endMatchLength - startIndex, wobei endIndex ist der Rückgabewert von der IndexOf oder IndexOf -Methode. und endMatchLength ist die Länge der Zeichenfolge ist, die das Ende der Teilzeichenfolge markiert. Das folgende Beispiel extrahiert einen Textblock an, die eine XML-Datei enthält <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>
    
  • Wenn das Zeichen oder die Zeichenfolge am Ende der Teilzeichenfolge, nicht enthalten ist die length entspricht endIndex - startIndex, wobei endIndex ist der Rückgabewert von der IndexOf oder IndexOf Methode.

Wenn startIndex ist gleich 0 (null) und ist gleich der Länge der aktuellen Zeichenfolge, die Methode gibt die ursprüngliche Zeichenfolge unverändert zurück.

Das folgende Beispiel veranschaulicht einen einfache Aufruf der Substring(Int32, Int32) -Methode, die zwei Zeichen aus einer Zeichenfolge, beginnend an der Zeichenposition der sechsten extrahiert (d. h. am index 5).

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

Im folgenden Beispiel wird die Substring(Int32, Int32) Methode in den folgenden drei Fällen Teilzeichenfolgen innerhalb einer Zeichenfolge isoliert. In beiden Fällen werden die Teilzeichenfolgen in Vergleichen verwendet, und im dritten Fall wird eine Ausnahme ausgelöst, weil ungültige Parameter angegeben werden.

  • Extrahiert das einzelne Zeichen und der dritten Position in der Zeichenfolge (am Index 2), und vergleicht ihn mit einem "c". Dieser Vergleich gibt true.

  • 0 (null) Zeichen ab der vierten Position in der Zeichenfolge (am Index 3) extrahiert und übergibt es an die IsNullOrEmpty Methode. Dies gibt "true", da der Aufruf der Substring -Methode zurückkehrt String.Empty.

  • Es versucht, ein Zeichen ab der vierten Position in der Zeichenfolge zu extrahieren. Da es kein Zeichen an dieser Position ist, löst der Methodenaufruf eine ArgumentOutOfRangeException Ausnahme.

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

Im folgenden Beispiel wird die Substring Methode zum Trennen von Schlüssel/Wert-Paaren, die durch ein Gleichheitszeichen getrennt sind ("=") Zeichen.

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'

The M:System.String.IndexOf(System.String) method is used to get the position of the equals character in the string.. The call to the M:System.String.Substring(System.Int32,System.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 M:System.String.IndexOf(System.String) method. The call to the M:System.String.Substring(System.Int32) method then extracts the value assigned to the key. It starts at one character position beyond the equals character and extends to the end of the string.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: