String Flashcards
Grundlagen Strings
Strings repräsentieren eine sequentielle Auflistung von Char-
Objekten, wobei ein Char-Objekt einem UTF-16-Zeichen entspricht.
› string-Variablen werden intern auf die Klasse String abgebildet.
› Die maximale Größe eines Strings beträgt ungefähr 2 GB (oder
etwa 1 Milliarde Zeichen).
› Strings sind nicht veränderbar (immutable).
› Wenn ein String verändert wird, so wird in Wahrheit ein neuer
String erzeugt, der ursprüngliche String bleibt unverändert im
Speicher.
Eigenschaften von Strings
Die Klasse String bietet nur zwei Eigenschaften an:
Die Eigenschaft Length gibt die Anzahl der Zeichen zurück.
Die Eigenschaft Chars ermöglicht es auf einzelne Zeichen der
Zeichenfolge zuzugreifen.
Die Eigenschaft Chars ist als Indexer implementiert, man kann auf
die einzelnen Zeichen zugreifen wie bei einem Array:
Suchen in Strings
Zum Suchen innerhalb einer Zeichenkette bietet die Klasse String einige
hilfreiche Methoden an:
StartsWith, EndsWith, IndexOf, LastIndexOf, SubString
Strings manipulieren
Darüber hinaus gibt es noch einige Methoden zum Einfügen, Entfernen und
Ersetzen von Teilen einer Zeichenkette:
Insert, Remove, Replace, Split
Strings konvertieren
Häufig ist es notwendig, Strings in Char-Arrays zu konvertieren oder umgekehrt.
› Aus einem Char-Array kann ein String über den Konstruktor erstellt werden
(siehe „Erzeugung von Strings“).
› Für den anderen Weg gibt es die Methode ToCharArray, die entweder den
ganzen String oder aber einen Teilstring in einen Char-Array umwandelt:
Mögliche Formatangaben
C
Zeigt die Zahl im lokalen Währungsformat an.
› D
Zeigt die Zahl als dezimalen Integer an.
› E
Zeigt die Zahl im wissenschaftlichen Format an.
› F
Zeigt die Zahl im Festpunktformat an.
› G
Eine Zahl wird entweder im Festpunkt- oder im wissenschaftlichen
›
Format angezeigt. Zur Anzeige kommt das „kompakteste“ Format.
› N
Zeigt eine numerische Zahl einschließlich Kommaseparatoren an.
› P
Zeigt die numerische Zahl als Prozentzahl an.
› X
Die Anzeige erfolgt in Hexadezimalnotation.
String Interpolation
Strings mit den bekannten Formatausdrücken können leicht unübersichtlich
werden.
In den geschweiften Klammern kann jeder beliebige C#-Ausdruck stehen, der
durch seine ToString()-Methode umgewandelt wird.
› Es können die gleichen Formatierungen wie bei Formatausdrücken verwendet
werden.
Verbatim Strings
In Strings können bestimmte Sonderzeichen wie ein Tabulator ( \t ) oder ein
Zeilenumbruch ( \n ) eingebaut werden.
› Sonderzeichen werden mit dem Backslash ( \ ) eingeleitet, was lästig ist wenn
man diesen als Zeichen braucht ( \ ).
› Abhilfe schaffen hier Verbatim-Strings, bei denen der Compiler keinerlei Escape-
Sequenzen auswertet:
string myString = @”Dies ist ein ““Verbatim-String””
der über mehrere Zeilen geht
C:\Temp\test.txt”;
Verbatim-Strings können mit Interpolation kombiniert werden.
StringBuilder
Strings sind unveränderlich (immutable), d.h. immer wenn ein String manipuliert
wird, wird in Wahrheit ein neuer String erzeugt.
›Das belastet das System, denn zum einen kostet die Erzeugung von Objekten
Zeit, zum anderen müssen die nicht mehr benötigten String-Objekte von der
GarbageCollection entfernt werden.
› Wenn außerordentlich viele String-Manipulationen notwendig sind, sollte man
daher die Klasse StringBuilder verwenden.
› StringBuilder-Objekte sind dynamisch, d.h. sie können verändert werden, ohne
dass dafür jedes mal ein neues Objekt erzeugt werden muss.
Eigenschaften von StringBuilder
Capacity, Length, MaxCapacity, Chars
Methoden von StringBuilder
Append, AppendFormat, AppendLine, Insert, Remove, Replace