(0) exportieren Drucken
Alle erweitern

String-Klasse

Stellt Text als eine Reihe von Unicode-Zeichen dar.

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

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public sealed class String : IComparable, ICloneable, IConvertible, 
	IComparable<string>, IEnumerable<string>, IEnumerable, 
	IEquatable<string>
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class String implements IComparable, ICloneable, 
	IConvertible, IComparable<String>, IEnumerable<String>, 
	IEnumerable, IEquatable<String>
SerializableAttribute 
ComVisibleAttribute(true) 
public final class String implements IComparable, ICloneable, 
	IConvertible, IComparable<String>, IEnumerable<String>, 
	IEnumerable, IEquatable<String>

Eine Zeichenfolge ist eine sequenzielle Auflistung von Unicode-Zeichen, die zum Darstellen von Text verwendet wird. Ein String-Objekt ist eine sequenzielle Auflistung von System.Char-Objekten, die eine Zeichenfolge darstellen. Der Wert des String-Objekts ist der Inhalt der sequenziellen Auflistung und unveränderlich.

Ein String-Objekt wird unveränderlich (schreibgeschützt) genannt, weil dessen Wert nach dem Erstellen nicht mehr geändert werden kann. Methoden, die ein String-Objekt scheinbar ändern, geben in Wirklichkeit ein neues String-Objekt zurück, das die Änderung enthält. Verwenden Sie die System.Text.StringBuilder-Klasse, wenn der Inhalt eines zeichenfolgenähnlichen Objekts geändert werden muss.

Jedes Unicode-Zeichen in einer Zeichenfolge wird durch einen skalaren Unicode-Wert definiert, der auch als Unicode-Codepunkt oder Ordnungszahl (numerischer Wert) des Unicode-Zeichens bezeichnet wird. Jeder Codepunkt wird mit UTF-16 codiert, und der numerische Wert der einzelnen Elemente der Codierung wird durch ein Char-Objekt dargestellt.

Ein einzelnes Char-Objekt stellt i. d. R. einen einzelnen Codepunkt dar, d. h., der numerische Wert von Char ist gleich dem Codepunkt. Für einen Codepunkt können aber auch mehrere codierte Elemente erforderlich sein. Ein zusätzlicher Unicode-Codepunkt (ein Ersatzzeichenpaar) wird z. B. mit zwei Char-Objekten codiert.

Indizes

Ein Index ist die Position eines Char-Objekt, nicht eines Unicode-Zeichens, in einem String. Ein Index ist eine nullbasierte, nicht negative Zahl beginnend an der ersten Position der Zeichenfolge, deren Indexposition null ist. Aufeinander folgende Indexwerte müssen nicht unbedingt aufeinander folgenden Unicode-Zeichen entsprechen, da ein Unicode-Zeichen als mehr als ein Char-Objekt codiert sein kann. Verwenden Sie zum Arbeiten mit den einzelnen Unicode-Zeichen anstelle der einzelnen Char-Objekte die System.Globalization.StringInfo-Klasse.

Ordinal- und kulturabhängige Operationen

Member der String-Klasse führen eine Ordinal- oder Sprachoperation für einen String aus. Bei einer Ordinaloperation wird der numerische Wert der einzelnen Char-Objekte verwendet. Bei einer Sprachoperation wird der Wert von String verwendet, wobei kulturabhängige Regeln zur Groß- und Kleinschreibung, Sortierung, Formatierung und zum Analysieren berücksichtigt werden. Sprachoperationen werden im Kontext einer explizit deklarierten Kultur oder implizit mit der aktuellen Kultur ausgeführt. Weitere Informationen über die aktuelle Kultur finden Sie unter dem Thema CultureInfo.CurrentCulture.

Die Regeln zur Groß- und Kleinschreibung bestimmen, wie die Groß- und Kleinschreibung eines Unicode-Zeichens, d. h. der Wechsel zwischen Groß- und Kleinbuchstaben, durchgeführt wird.

Formatierungsregeln legen fest, wie ein Wert in seine Zeichenfolgendarstellung umgewandelt wird, während Analyseregeln bestimmen, wie eine Zeichenfolgendarstellung in einen Wert umgewandelt wird.

Sortierregeln legen die alphabetische Reihenfolge von Unicode-Zeichen sowie die Methode zum Vergleichen zweier Zeichenfolgen fest. Die Compare-Methode führt z. B. einen sprachlichen Vergleich durch, während die CompareOrdinal-Methode einen Vergleich anhand von Ordnungszahlen durchführt. Wenn die aktuelle Kultur z. B. Englisch (USA) ist, wertet die Compare-Methode "a" als kleiner "A" aus, während die CompareOrdinal-Methode "a" als größer "A" betrachtet.

.NET Framework unterstützt Sortierregeln für Wörter, Zeichenfolgen und Ordnungszahlen. Bei einer Wortsortierung wird ein kulturabhängiger Vergleich von Zeichenfolgen durchgeführt, bei dem bestimmten nicht alphanumerischen Unicode-Zeichen u. U. bestimmte Gewichtungen zugeordnet sind. Beispielsweise wird dem Bindestrich ("-") ggf. eine sehr geringe Gewichtung zugeordnet, sodass "coop" und "co-op" in einer sortierten Liste nebeneinander angezeigt werden. Eine Zeichenfolgensortierung entspricht im Wesentlichen einer Wortsortierung, wobei allerdings keine Sonderfälle zugelassen sind und alle nicht alphanumerischen Symbole vor den alphanumerischen Unicode-Zeichen angezeigt werden.

Ein kulturabhängiger Vergleich ist ein Vergleich, bei dem explizit oder implizit ein CultureInfo-Objekt einschließlich einer invarianten Kultur verwendet wird, die durch die CultureInfo.InvariantCulture-Eigenschaft angegeben wird. Die aktuelle implizite Kultur wird durch die Thread.CurrentCulture-Eigenschaft angegeben.

Bei einer Sortierung nach Ordinalzahl werden die Zeichenfolgen entsprechend dem numerischen Wert der einzelnen Char-Objekte in der Zeichenfolge verglichen. Bei einem Ordinalvergleich wird automatisch die Groß- und Kleinschreibung berücksichtigt, da die groß- und kleingeschriebenen Varianten von Zeichen unterschiedliche Codepunkte besitzen. Wenn die Groß- und Kleinschreibung bei der Anwendung allerdings nicht relevant ist, können Sie einen Ordinalvergleich ohne Berücksichtigung von Groß- und Kleinschreibung angeben. Dies entspricht dem Konvertieren der Zeichenfolge in Großbuchstaben mithilfe der invarianten Kultur und dem anschließenden Ordinalvergleich mit dem Ergebnis.

Weitere Informationen über die Regeln für das Sortieren nach Wörtern, Zeichenfolgen und Ordnungszahlen finden Sie unter dem Thema System.Globalization.CompareOptions.

Ein kulturabhängiger Vergleich ist für Sortierung i. d. R. geeignet, ein Ordinalvergleich jedoch nicht. Ein Ordinalvergleich eignet sich für das Bestimmen, ob zwei Zeichenfolgen gleich sind (d. h. für die Bestimmung der Identität), wofür ein kulturabhängiger Vergleich nicht geeignet ist.

Die Hinweise zu Vergleichen und die Suchmethoden geben an, ob die Methode die Groß- und Kleinschreibung bzw. die Kultur berücksichtigt. Per Definition ist jede Zeichenfolge, einschließlich der leeren Zeichenfolge (""), im Vergleich größer als ein NULL-Verweis, und zwei NULL-Verweise sind gleich.

Normalisierung

Für einige Unicode-Zeichen gibt es mehrere gleichwertige Binärdarstellungen, die aus verschiedenen kombinierenden und/oder zusammengesetzten Unicode-Zeichen bestehen. Im Unicode-Standard ist der so genannte Normalisierungsprozess definiert, durch den bei Eingabe einer der äquivalenten Binärdarstellungen eines Zeichens eine einzelne Binärdarstellung zurückgegeben wird. Die Normalisierung kann mit mehreren Algorithmen ausgeführt werden, den so genannten Normalisierungsformen, für die unterschiedlichen Regeln folgen. .NET Framework unterstützt derzeit die Normalisierungsformen C, D, KC und KD. Ein Paar aus normalisierten Zeichenfolgen wird i. d. R. mit einem Ordinalvergleich ausgewertet.

Sicherheitsüberlegungen

Wenn in der Anwendung eine Sicherheitsentscheidung über einen Symbolbezeichner wie einen Dateinamen, eine benannte Pipe oder persistente Daten, z. B. textbasierte Daten in einer XML-Datei, durchgeführt wird, sollte bei dem Vorgang anstelle eines kulturabhängigen Vergleichs ein Ordinalvergleich verwendet werden. Die Ursache hierfür ist, dass ein kulturabhängiger Vergleich in Abhängigkeit von der gültigen Kultur unterschiedliche Ergebnisse liefern kann, während ein Ordinalvergleich lediglich vom Binärwert der verglichenen Zeichen abhängig ist.

Funktionalität

Die String-Klasse stellt Member bereit, mit denen String-Objekte verglichen, der Index eines Zeichens oder einer Zeichenfolge in einem String-Objekt zurückgegeben, der Wert eines String-Objekts kopiert, eine Zeichenfolge aufgeteilt oder mehrere Zeichenfolgen kombiniert, Zahlen-, Datums- und Uhrzeitangaben oder Enumerationswerte als Zeichenfolge formatiert sowie Zeichenfolgen normalisiert werden können.

  • Verwenden Sie für Vergleiche die Methoden Compare, CompareOrdinal, CompareTo, Equals, EndsWith und StartsWith.

  • Zum Abrufen des Indexes einer Teilzeichenfolge oder eines Unicode-Zeichens in einer Zeichenfolge verwenden Sie die Methoden IndexOf, IndexOfAny, LastIndexOf und LastIndexOfAny.

  • Mit Copy und CopyTo können Sie eine Zeichenfolge oder Teilzeichenfolge in eine andere Zeichenfolge oder ein Array vom Typ Char kopieren.

  • Verwenden Sie die Substring-Methode und die Split-Methode, um eine oder mehrere Zeichenfolgen aus Teilen einer ursprünglichen Zeichenfolge zu erstellen, und die Concat-Methode und die Join-Methode, um eine neue Zeichenfolge aus einer oder mehreren Teilzeichenfolgen zu erstellen.

  • Zum Bearbeiten einer Zeichenfolge oder eines Teils einer Zeichenfolge verwenden Sie Insert, Replace, Remove, PadLeft, PadRight, Trim, TrimEnd und TrimStart.

  • Mit den Methoden ToLower, ToLowerInvariant, ToUpper und ToUpperInvariant können Sie die Groß- und Kleinschreibung von Unicode-Zeichen in einer Zeichenfolge ändern.

  • Verwenden Sie Format, um einen oder mehrere Platzhalter für Formatelemente in einer Zeichenfolge durch die Textdarstellung eines oder mehrerer Zahlen-, Datums-, Zeit- oder Enumerationswerte zu ersetzen.

  • Mit der Length-Eigenschaft können Sie die Anzahl der Char-Objekte in einer Zeichenfolge abrufen, und mit der Chars-Eigenschaft greifen Sie auf die tatsächlichen Char-Objekte in einer Zeichenfolge zu.

  • Verwenden Sie die IsNormalized-Methode, um zu testen, ob eine Zeichenfolge in eine bestimmte Normalisierungsform normalisiert wurde. Verwenden Sie die Normalize-Methode, um eine Zeichenfolge zu erstellen, die in eine bestimmte Normalisierungsform normalisiert wird.

Implementierte Schnittstellen

Die String-Klasse implementiert die Schnittstellen IComparable, ICloneable, IConvertible, IEnumerable und IComparable. Verwenden Sie für Konvertierungen die Convert-Klasse anstelle der expliziten Implementierung der Schnittstellenmember von IConvertible für diesen Typ.

Dieser Typ ist sicher bei Multithreadoperationen.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

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

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0
Anzeigen:
© 2014 Microsoft