C# Strings: Erstellung, Eigenschaften, Methoden & Best Practices
String in C#
Der Typ string (Alias für System.String) ist ein unveränderlicher (immutable) Verweis-typ, der eine Folge von Unicode-Zeichen darstellt.
String-Objekte erstellen
- String-Literal:
string s = "Hallo"; - Konstruktor:
new string(new char[] {'H','a','l','l','o'}) - Verkettung:
string s = "Ha" + "llo"; - Methoden-Rückgabe:
string s = DateTime.Now.ToString(); - Formatierung:
string s = string.Format("{0:C}", 123.45);
Beispiel
string fname = "Rowan", lname = "Atkinson";
char[] letters = { 'H', 'e', 'l', 'l', 'o' };
string[] parts = { "Hello", "From", "Tutorials", "Point" };
string fullname = fname + lname; // "RowanAtkinson"
string greeting = new string(letters); // "Hello"
string message = string.Join(" ", parts); // "Hello From Tutorials Point"
string chat = string.Format("Sent at {0:t} on {0:D}", DateTime.Now);
Wichtige Eigenschaften
| Eigenschaft | Beschreibung |
|---|---|
Length | Anzahl der Zeichen (read-only) |
Chars[int index] | Zugriff auf einzelnes Zeichen (Indexer) |
Wichtige Methoden (Auszug)
| Methode | Beschreibung |
|---|---|
Compare(strA, strB) | Vergleich (kulturabhängig), Rückgabe int |
Concat(str0, str1, ...) | Verkettet Strings |
Contains(value) | Prüft, ob Substring enthalten |
Copy(str) | Erstellt Kopie |
EndsWith(value) | Prüft Endung |
Equals(value) | Wertgleichheit prüfen |
Format(format, args) | Formatiert String |
IndexOf(value) | Erstes Vorkommen (Index oder -1) |
Insert(startIndex, value) | Fügt String ein |
IsNullOrEmpty(value) | Prüft auf null oder "" |
Join(separator, array) | Verkettet Array mit Trennzeichen |
LastIndexOf(value) | Letztes Vorkommen |
Remove(startIndex[, count]) | Entfernt Zeichen |
Replace(old, new) | Ersetzt alle Vorkommen |
Split(separator) | Zerlegt in String-Array |
StartsWith(value) | Prüft Anfang |
Substring(startIndex[, length]) | Extrahiert Teilstring |
ToLower() / ToUpper() | Klein-/Großbuchstaben |
Trim() | Entfernt Whitespace am Rand |
Praxisbeispiele
Strings vergleichen
string s1 = "This is test";
string s2 = "This is text";
Console.WriteLine(string.Compare(s1, s2) == 0 ? "gleich" : "ungleich"); // ungleich
Substring prüfen
string s = "This is test";
if (s.Contains("test")) Console.WriteLine("Gefunden");
Teilstring extrahieren
string s = "Last night I dreamt of San Pedro";
string sub = s.Substring(23); // "San Pedro"
Array zu String verbinden
string[] lines = { "Line 1", "Line 2", "Line 3" };
string joined = string.Join("\n", lines);
Best Practices
- Für viele Verkettungen
StringBuilderverwenden (vermeidet viele temporäre Strings). - Vergleiche mit
StringComparison.OrdinalIgnoreCasefür kulturunabhängige Vergleiche. IsNullOrWhiteSpacestattIsNullOrEmptywenn Whitespace als "leer" gilt.- Verbatim-Strings (
@"") für Pfade/RegEx:@"C:\Temp\file.txt".
C Sprache
- C# Klassen & Objekte: Fundamente für robustes OOP
- C# Strings meistern: Grundlagen, Operationen & fortgeschrittene Techniken
- Java Strings meistern: Erstellung, Methoden und Best Practices
- Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung
- String-Repräsentationen in Java Enums meistern
- C++ String‑Funktionen meistern: strcpy, strcat, strlen, strcmp – Praxisbeispiele
- C Strings einfach gemacht: Deklaration, Ein- & Ausgabe, Bibliotheksfunktionen
- Python String-Operationen meistern: Replace, Join, Split, Reverse und Case Conversion
- Java Strings Klasse: String-Erstellung & Manipulation meistern
- Java Objekt-Serialisierung: Objekte persistieren und wiederherstellen