Strings

Strings

Strings sind im Wesentlichen Ketten von Zeichen. Intern werden sie in C# als Arrays von Chars, also als Felder von Zeichenketten dargestellt. Das Initialiseren von Strings erfolgt entweder direkt, also mit dem = Operator, oder, wenn bereits ein Array von Chars vorhanden ist, dessen Wert man einer String Variable geben will, mit dem new Operator.

static void Main(string[] args)
{
string s1 = "Hello World";
char[] ch = { 'H', 'e', 'l', 'l', 'o' };
string s2 = new string(ch); //array of chars wird zugewiesen
}

Man kann zwei String Variablen konkatenieren, also zusammenfügen. Die Konkatenation von zwei Strings in C# funktioniert mit dem + Operator. Der Wert kann sowohl in einer neuen Variable gespeichert werden als auch in einer der bereits vorhandenen.

static void Main(string[] args)
{
string s1 = "Hello";
string s2 = "World";
string s3 = s1 + " " + s2; //s3 beinhaltet jetzt "Hello World"

s1 = s1 + ", " + s3; //s1 beinhaltet jetzt "Hello, Hello World"

s2 += "!"; //s2 beinhaltet jetzt "World!"
}

Es gibt mehrere Zeichen, die in Strings eine bestimmte Bedeutung haben und die man deshalb nicht einfach so verwenden kann. Zum Beispiel ist es nicht möglich, in einen String einfach so das Zeichen " einzufügen, weil das ja die Zeichenkette beenden würde. Aus diesem Grund gibt es den Escape Character "\". Um zum Beispiel ein " in einen String einzufügen würde man \" schreiben. Weitere Beispiele sind das einfache Anführungszeichen ', das man mit \' escapen kann und natürlich der Backslash \, der mit \\ escaped wird. Das heißt, würde man \\ in einem String schreiben, würde es nur als ein Backslash aufscheinen.

Eine weitere Escape Sequence - also etwas, dessen eigentliche Bedeutung durch etwas anderes ersetzt wird - ist "\n", das in dieser Form für einen Zeilenumbruch steht. Würde man in einem String "\n" stehen haben wollen, statt dem Zeilenumbruch, müsste man wiederum "\\n" schreiben, da dann der Backslash wieder escaped wird.

static void Main(string[] args)
{
string s1 = "\"Hallo\""; //Ausgabe: '"Hallo"'
string s2 = "Hallo\\n"; //Ausgabe: 'Hallo\n'
}
}

Es gibt noch einige weitere Escape Sequences, die für den Anfang aber nicht unbedingt notwendig sind. Außerdem ist es möglich, von einem String einen Substring - also einen Teil des bestehenden Strings - zu bilden, oder einen Teil des Strings durch einen anderen Teil zu ersetzen. Der erste Parameter des Substring gibt an, ab welchem Zeichen der String kopiert wird, gezählt wird hier wieder ab Null. Der zweite Parameter gibt an, wieviele Zeichen kopiert werden.

static void Main(string[] args)
{
string s1 = "Hallo Welt!";
string s2 = s1.Substring(6, 4); //Ausgabe: "Welt"

string s3 = s1.Replace("Hallo", "Willkommen"); //Ausgabe: "Willkommen Welt!"
}
}