1. Wir schauen uns den Typ string genauer an
Der Typ string ist einer der meistgenutzten Typen in C#. Vielleicht sogar der meistgenutzte überhaupt. Das ist einfach ein genialer Typ, weil du darin Text speichern kannst. Und im Gegensatz zu int und double haben Objekte vom Typ string jede Menge Funktionen, mit denen du coole Sachen machen kannst.
Außerdem können alle Objekte in C# (wirklich alle) in den Typ string umgewandelt werden. Oder, etwas genauer gesagt, alle Objekte in C# geben ihre textuelle (String-)Darstellung zurück. Wir werden noch öfter auf diesen Typ zurückkommen (er ist einfach zu nützlich und spannend), aber heute schauen wir uns erstmal die Basics an.
String-Variablen erstellen
Der Typ string ist dafür da, Strings (Text) zu speichern. Um im Code eine Variable zu erstellen, die Text speichern kann, benutzt du einfach:
string name;
Wobei name einfach der Name der Variable ist.
Beispiele:
| Befehl | Beschreibung |
|---|---|
| string name; | Erstellt die String-Variable name |
| string message; | Erstellt die String-Variable message |
| string text; | Erstellt die String-Variable text |
Genauso wie bei int und double kannst du auch mehrere Variablen vom Typ string in einer Zeile deklarieren:
string name1, name2, name3;
2. String-Variablen Werte zuweisen
Um einer Variable vom Typ string einen Wert zu geben, benutzt du:
name = "wert";
Und hier kommt schon der erste Unterschied zu den Typen, die wir schon kennen. Alle Werte vom Typ string sind Text und müssen in doppelte Anführungszeichen gesetzt werden.
Beispiele:
| Befehl | Hinweis |
|---|---|
| string name = "Anja"; | Die Variable name enthält den Text Anja |
| string city = "New York"; | Die Variable city enthält den Text New York |
| string message = "Hello!"; | Die Variable message enthält den Text Hello! |
3. String-Variablen initialisieren
Wie bei int und double kannst du String-Variablen direkt beim Erstellen initialisieren. Das geht übrigens mit allen Typen in C#. Also, das erwähnen wir jetzt nicht mehr extra.
string name1 = "string1", name2 = "string2";
Beispiel für das Erstellen und Initialisieren von Variablen
string name = "Anja", city = "New York", message = "Hello!";
Nur initialisierte Variablen können benutzt werden
Der C#-Compiler meckert, wenn du eine Variable deklarierst, ihr aber keinen Wert gibst und sie dann benutzen willst.
So ein Code funktioniert nicht:
string name;
Console.WriteLine(name); // Die Variable name ist nicht initialisiert. Das Programm kompiliert nicht.
int a;
a++; // Die Variable a ist nicht initialisiert. Das Programm kompiliert nicht.
double x;
double y = x; // Die Variable x ist nicht initialisiert. Das Programm kompiliert nicht.
4. Konkatenation – Strings zusammenkleben
Es gibt eine ziemlich coole und einfache Sache, die du mit Strings in C# machen kannst – du kannst sie zusammenkleben. Das nennt man Konkatenation. Oder, damit es sich besser einprägt – Kon-Ka-Tenation. Oft sagt man auch einfach „Strings zusammenkleben“ oder sogar „Strings addieren“.
Um zwei Strings zu verbinden, benutzt du das +-Zeichen. Das ist super easy:
"wert1" + "wert2"
Beispiele:
| Befehl | Hinweis |
|---|---|
| string name = "Anja" + "Anja"; | name enthält den String AnjaAnja |
| string city = "New York" + "Anja"; | city enthält den String New YorkAnja |
| string message = "Hello! " + "Anja"; | message enthält den String Hello! Anja |
Natürlich kannst du auch mehrere Strings auf einmal zusammenkleben oder Strings und Variablen mischen.
Beispiele:
string name = "Anja"; // name enthält den String Anja
string city = "New York"; // city enthält den String New York
string message = "Hello!" + city + name + city; // message enthält den String Hello!New YorkAnjaNew York
5. Leere Strings
Im letzten Beispiel sieht man, dass der Text in der Variable message schwer zu lesen ist, weil Leerzeichen fehlen. Um ein oder mehrere Leerzeichen einzufügen, schreib sie einfach in den Code und pack sie in doppelte Anführungszeichen. Das ist einfacher als du denkst:
" "
Übrigens, wenn du zwischen den Anführungszeichen gar nichts schreibst (also zwei doppelte Anführungszeichen direkt nebeneinander), bekommst du einen sogenannten „leeren String“:
""
Auf der einen Seite ist er da, aber wenn du ihn ausgibst, siehst du nichts. Und wenn du ihn mit anderen Strings zusammenklebst, passiert auch nichts. Sozusagen das Null-Äquivalent für Strings.
6. Sonderzeichen in Strings escapen
Du weißt schon, dass Strings in doppelte Anführungszeichen gesetzt werden. Aber was, wenn du Anführungszeichen im String brauchst? Wenn du sie einfach so schreibst, denkt der Compiler doch, das ist das Ende des Strings, oder?
Genau. Deshalb ersetzt man Anführungszeichen im Text durch \". Und der Code sieht dann so aus:
string quote = "Er sagte: \"Hallo!\"";
Console.WriteLine(quote); // Er sagte: "Hallo!"
Eigentlich ist es noch ein bisschen trickreicher. Das Zeichen \ ist ein spezielles (Steuer-)Zeichen in Strings. Damit kannst du verschiedene „unsichtbare Zeichen“ wie Zeilenumbruch, Tab usw. einfügen. Und um das Zeichen \ selbst zu schreiben, musst du es zweimal tippen.
Hier sind die 4 gängigsten Kombinationen:
| Schreibweise | Bedeutung |
|---|---|
| \n | Zeilenumbruch (newline) |
| \t | Tabulator (Einrückung) |
| \\ | Buchstäblich \ |
| \" | Anführungszeichen im String |
Beispiel:
string multiline = "Zeile 1\nZeile 2";
Console.WriteLine(multiline);
Ausgabe:
// Zeile 1
// Zeile 2
7. String-Interpolation ($-Strings)
C# ist eine ziemlich moderne Sprache und erlaubt es dir, Variablenwerte easy und schick direkt in einen String einzubauen – mit String-Interpolation. Einfach vor die Anführungszeichen ein $ setzen und in den String geschweifte Klammern {} benutzen. Das kennst du vielleicht schon.
Was du vielleicht noch nicht weißt: In den geschweiften Klammern kannst du ganze Ausdrücke und sogar Funktionsaufrufe reinschreiben! Beispiel:
string name = "Olga";
int birthYear = 1999;
string info = $"Ich heiße {name}, ich bin {2025-birthYear} Jahre alt.";
Console.WriteLine(info); // Ich heiße Olga, ich bin 26 Jahre alt.
Das macht den Code viel lesbarer und reduziert Fehler (und Klammern). Mehr zur Interpolation gibt's in einer eigenen Vorlesung, aber für einfache Fälle kannst du das ruhig schon benutzen.
8. Eigene String-Funktionen
Der Typ string hat eigene Funktionen (auch Methoden genannt). Es gibt echt viele davon, und sie machen das Leben von Programmierern leichter. Heute lernst du ein paar (ganz einfache) davon kennen. Beispiel:
| Funktion | Beschreibung | Beispiel-Ergebnis |
|---|---|---|
| str.Length | Länge des Strings | "abc".Length → 3 |
| str.ToUpper() | In Großbuchstaben | "abc".ToUpper() → "ABC" |
| str.ToLower() | In Kleinbuchstaben | "ABC".ToLower() → "abc" |
| str.Trim() | Leerzeichen am Rand entfernen | " x y ".Trim() → "x y" |
Beispiele für String-Funktionen
Alle diese Funktionen rufst du so auf: variable.funktion(...) .
String-Länge bestimmen:
string name = "Andrej";
int length = name.Length;
Console.WriteLine(length); // 6, weil 6 Buchstaben
String in Groß- oder Kleinbuchstaben umwandeln:
string original = "Hallo";
Console.WriteLine(original.ToUpper()); // HALLO
Console.WriteLine(original.ToLower()); // hallo
Leerzeichen am Rand entfernen (super praktisch bei Tastatureingaben):
string messy = " hello ";
Console.WriteLine(messy.Trim()); // "hello"
Jede dieser Funktionen gibt einen neuen String zurück, der alte String bleibt unverändert.
GO TO FULL VERSION