Informationen
Das angeforderte Thema wird unten angezeigt. Es ist jedoch nicht in dieser Bibliothek vorhanden.

String.Split-Methode (String[], StringSplitOptions)

Gibt ein Zeichenfolgenarray zurück, das die Teilzeichenfolgen dieser Zeichenfolge enthält, die durch Elemente eines angegebenen Zeichenfolgenarrays getrennt sind. Ein Parameter gibt an, ob leere Arrayelemente zurückgegeben werden sollen.

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

[ComVisibleAttribute(false)]
public string[] Split(
	string[] separator,
	StringSplitOptions options
)

Parameter

separator
Typ: System.String[]
Ein Array von Einzelzeichen-Zeichenfolgen, die die untergeordneten Zeichenfolgen in dieser Zeichenfolge trennen, ein leeres Array ohne Trennzeichen oder null.
options
Typ: System.StringSplitOptions
RemoveEmptyEntries , wenn leere Arrayelemente aus dem zurückgegebenen Array ausgelassen werden sollen, oder None, wenn leere Arrayelemente in das zurückgegebene Array eingeschlossen werden sollen.

Rückgabewert

Typ: System.String[]
Ein Array, dessen Elemente die Teilzeichenfolgen in dieser Zeichenfolge enthält, die durch ein oder mehr Zeichenfolgen aus separator getrennt sind. Weitere Informationen finden Sie im Abschnitt "Hinweise".

AusnahmeBedingung
ArgumentException

options ist keiner der StringSplitOptions-Werte.

Rückgabewertdetails

Trennzeichenfolgen sind in den Elementen des zurückgegebenen Arrays nicht enthalten.

Wenn diese Instanz keine der Zeichenfolgen in separator enthält, besteht das zurückgegebene Array aus einem einzelnen Element, das diese Instanz enthält. Wenn der separator-Parameter null ist oder keine Zeichen enthält, werden Leerraumzeichen als Trennzeichen angenommen. Leerstellenzeichen werden vom Unicodestandard definiert und geben true zurück, wenn sie an die Char.IsWhiteSpace-Methode übergeben werden. Wenn der separator-Parameter im Aufruf dieser Methodenüberladung jedoch null ist, schlägt die Compilerüberladungsauflösung fehl. Im Code muss der Typ null angegeben werden, um die aufgerufene Methode eindeutig zu identifizieren. Im folgenden Beispiel werden mehrere Möglichkeiten veranschaulicht, diese Überladung eindeutig zu identifizieren.


string phrase = "The quick  brown fox";
string[] words;

words = phrase.Split(default(string[]), StringSplitOptions.RemoveEmptyEntries);

words = phrase.Split((string[]) null, StringSplitOptions.RemoveEmptyEntries);

words = phrase.Split(null as string[], StringSplitOptions.RemoveEmptyEntries);


Wenn der options-Parameter RemoveEmptyEntries und die Länge dieser Instanz 0 (null) ist, wird ein leeres Array zurückgegeben.

Jedes Element von separator definiert ein separates Trennzeichen, das aus einem oder mehreren Zeichen besteht. Wenn der options-Parameter None ist und zwei Trennzeichen aufeinander folgen oder ein Trennzeichen sich am Anfang oder Ende dieser Instanz befinden, enthält das entsprechende Arrayelement Empty.

Das Trennzeichenarray

Wenn eines der Elemente in separator besteht aus mehr, als ein einzelnes Zeichen, nur das erste Zeichen dieses Elements als Trennzeichen gilt, und alle nachfolgenden Zeichen ignoriert werden. Wenn eines der Elemente in separator "10" ist, gibt der Versuch, die Zeichenfolge "This10is10a10string." zu teilen, das folgende Viererarray zurück: { "This", "0is", "0a", "0string." }.

Vergleichsdetails

Die Split-Methode extrahiert die Teilzeichenfolgen in dieser Zeichenfolge, die durch eine oder mehr Zeichenfolgen im separator-Parameter getrennt sind, und gibt diese Teilzeichenfolgen als Elemente eines Arrays zurück.

Die Split-Methode sucht nach Trennzeichen, indem sie Vergleiche mit der Ordinalsortierung unter Berücksichtigung der Groß- und Kleinschreibung ausführt. Weitere Informationen über das Sortieren nach Wörtern, Zeichenfolgen und Ordnungszahlen finden Sie unter der System.Globalization.CompareOptions-Enumeration.

Die Split-Methode ignoriert alle Elemente von separator, deren Wert null oder eine leere Zeichenfolge ("") ist.

Zur Vermeidung mehrdeutiger Ergebnisse, wenn Zeichenfolgen separator gleiche Zeichen enthalten, verarbeitet die Split-Operation den Wert der Instanz vom Anfang zum Ende und gibt eine Übereinstimmung für das erste Element in separator aus, das gleich einem Trennzeichen in der Instanz ist. Die Reihenfolge, in der Teilzeichenfolgen in der Instanz vorkommen, hat Vorrang vor der Reihenfolge der Elemente in separator.

Beispiel sei eine Instanz mit dem Wert "abcdef". Wenn das erste Element in separator "ef" lautet und das zweite Element "bcde", ist das Ergebnis der Teilungsoperation "a" und "f". Der Grund hierfür ist, dass die Teilzeichenfolge "bcde" in der Instanz vorkommt und mit einem Element in separator übereinstimmt, bevor die Teilzeichenfolge "f" verarbeitet wird.

Wenn das erste Element in separator jedoch "bcd" lautet und das zweite Element "bc", ist das Ergebnis der Teilungsoperation "a" und "ef". Das liegt daran, dass "bcd" das erste Trennzeichen in separator ist, das mit einem Trennzeichen in der Instanz übereinstimmt. Wenn die Reihenfolge der Trennzeichen umgekehrt wird, sodass "bc" das erste Element und "bcd" das zweite Element ist, ist das Ergebnis "a" und "def".

Überlegungen zur Leistung

Die Split-Methoden reservieren Speicher für das zurückgegebene Arrayobjekt und ein String-Objekt für jedes Arrayelement. Wenn die optimale Leistung oder die Verwaltung der Speicherbelegung für die Anwendung eine wichtige Rolle spielt, empfiehlt es sich, zum Suchen einer Teilzeichenfolge in einer Zeichenfolge die IndexOf-Methode oder die IndexOfAny-Methode sowie optional die Compare-Methode zu verwenden.

Wenn Sie eine Zeichenfolge an einem Trennzeichen teilen, verwenden Sie zum Suchen eines Trennzeichens in der Zeichenfolge die IndexOf-Methode oder die IndexOfAny-Methode. Wenn Sie eine Zeichenfolge an einem Trennzeichen teilen, verwenden Sie zum Suchen des ersten Zeichens einer Trennzeichenfolge die IndexOf-Methode oder die IndexOfAny-Methode. Bestimmen Sie anschließend mit der Compare-Methode, ob die Zeichen hinter dem ersten Zeichen gleich den verbleibenden Zeichen in der Trennzeichenfolge sind.

Wenn außerdem Zeichenfolgen in mehreren Split-Methodenaufrufen mit derselben Gruppe von Zeichen geteilt werden, sollten Sie ein einzelnes Array erstellen und in jedem Methodenaufruf darauf verweisen. Dies reduziert den zusätzlichen Aufwand jedes Methodenaufrufs bedeutend.

Hinweise zu Aufrufern

In .NET Framework 3.5 und früheren Versionen: Wenn der Split-Methode ein separator, der null ist oder keine Zeichen enthält, übergeben wird, verwendet die Methode einen etwas anderen Satz von Zeichen, um die Zeichenfolge zu teilen, als die Trim-Methode. In .NET Framework 4 verwenden beide Methoden einen identischen Satz von Unicode-Leerstellenzeichen.

Im folgenden Beispiel wird der Unterschied zwischen den Arrays veranschaulicht, die beim Aufruf der String.Split(String[], StringSplitOptions)-Methode einer Zeichenfolge zurückgegeben werden, wobei deren options-Parameter auf StringSplitOptions.None und StringSplitOptions.RemoveEmptyEntries festgelegt ist.


using System;

class Example 
{
   public static void Main() 
   {
      string source = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]";
      string[] stringSeparators = new string[] {"[stop]"};
      string[] result;

      // Display the original string and delimiter string.
      Console.WriteLine("Splitting the string:\n   \"{0}\".", source);
      Console.WriteLine();
      Console.WriteLine("Using the delimiter string:\n   \"{0}\"", 
                        stringSeparators[0]);
      Console.WriteLine();                           

      // Split a string delimited by another string and return all elements.
      result = source.Split(stringSeparators, StringSplitOptions.None);
      Console.WriteLine("Result including all elements ({0} elements):", 
                        result.Length);
      Console.Write("   ");
      foreach (string s in result)
      {
         Console.Write("'{0}' ", String.IsNullOrEmpty(s) ? "<>" : s);                   
      }
      Console.WriteLine();
      Console.WriteLine();

      // Split delimited by another string and return all non-empty elements.
      result = source.Split(stringSeparators, 
                            StringSplitOptions.RemoveEmptyEntries);
      Console.WriteLine("Result including non-empty elements ({0} elements):", 
                        result.Length);
      Console.Write("   ");
      foreach (string s in result)
      {
         Console.Write("'{0}' ", String.IsNullOrEmpty(s) ? "<>" : s);                   
      }
      Console.WriteLine();
   }
}
// The example displays the following output:
//    Splitting the string:
//       "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]".
//    
//    Using the delimiter string:
//       "[stop]"
//    
//    Result including all elements (9 elements):
//       '<>' 'ONE' '<>' 'TWO' '<>' '<>' 'THREE' '<>' '<>'
//    
//    Result including non-empty elements (3 elements):
//       'ONE' 'TWO' 'THREE'


Im folgenden Beispiel wird ein Array die Trennzeichen, Interpunktionszeichen und Leerzeichen enthalten. Dies Array zusammen mit einem Wert von StringSplitOptions.RemoveEmptyEntries der Split(String[], StringSplitOptions)-Methode übergeben wird, gibt ein Array zurück, das aus einzelnen Wörtern von der Zeichenfolge besteht.


using System;

public class Example
{
   public static void Main()
   {
      string[] separators = {",", ".", "!", "?", ";", ":", " "};
      string value = "The handsome, energetic, young dog was playing with his smaller, more lethargic litter mate.";
      string[] words = value.Split(separators, StringSplitOptions.RemoveEmptyEntries);
      foreach (var word in words)
         Console.WriteLine(word);
   }
}
// The example displays the following output:
//       The
//       handsome
//       energetic
//       young
//       dog
//       was
//       playing
//       with
//       his
//       smaller
//       more
//       lethargic
//       litter
//       mate


Beachten Sie, dass die Methode mit dem options-Argument aufgerufen wird, das auf StringSplitOptions.RemoveEmptyEntries festgelegt wird. Dies verhindert das zurückgegebene Array am Einfügen von String.Empty-Werten, die leere Teilzeichenfolgenabgleichungen zwischen Interpunktionszeichen und Leerzeichen darstellen.

.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

Anzeigen:
© 2014 Microsoft