Kurse:Datentypen-C-Sharp String-Operationen und wichtige Methoden: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Die Seite wurde neu angelegt: „== Grundlagen == ; Deklaration <syntaxhighlight lang="csharp"> string name = "Alice"; string leer = string.Empty; </syntaxhighlight> ; Verkettung <syntaxhighlight lang="csharp"> string full = vorname + " " + nachname; string interp = $"{vorname} {nachname}"; var builder = new StringBuilder().Append(vorname).Append(' ').Append(nachname).ToString(); </syntaxhighlight> == Häufig genutzte Eigenschaften == * Length – Anzahl der UTF-16 Codeeinheiten (nicht…“ |
// via Wikitext Extension for VSCode |
||
| Zeile 1: | Zeile 1: | ||
== | Hier ist die Übersicht, sortiert von Anfänger bis Profi, jeweils mit Beispielcode und Merkzettel: | ||
; Deklaration | |||
== Anfänger == | |||
; Deklaration & Verkettung | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
string name = "Alice"; | string name = "Alice"; | ||
string full = vorname + " " + nachname; | string full = vorname + " " + nachname; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: Strings sind Zeichenketten. Verkettung mit +. | |||
; Eigenschaften & Vergleich | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
int len = str.Length; | |||
bool gleich = str == "abc"; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: .Length gibt die Länge. == vergleicht Werte. | |||
; Suchen & Extrahieren | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
str.Contains("abc" | bool hat = str.Contains("abc"); | ||
str | char c = str[0]; | ||
str. | string teil = str.Substring(2, 3); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: .Contains prüft auf Teilstring, [i] für Zeichen, Substring für Ausschnitt. | |||
; Aufteilen & Zusammenfügen | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
var parts = str.Split(','); | |||
var parts = str.Split(' | |||
string joined = string.Join(";", parts); | string joined = string.Join(";", parts); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: Split teilt, Join verbindet. | |||
; Trimmen & Ersetzen | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
str.Trim(); | |||
str.Replace("alt", "neu"); | str.Replace("alt", "neu"); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: Trim entfernt Leerzeichen, Replace ersetzt Text. | |||
== | == Fortgeschritten == | ||
; Formatierung & Groß/Kleinschreibung | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
string | string s = $"Wert: {value:N2}"; | ||
$"Wert: {value:N2}"; | str.ToUpperInvariant(); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: $"" für Interpolation, ToUpper/ToLower für Umwandlung. | |||
; Einfügen & Entfernen & Pad | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
str. | str.Insert(2, "X"); | ||
str. | str.Remove(1, 2); | ||
"42".PadLeft(5, '0'); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: Insert/Remove ändern Text, PadLeft/Right füllt auf. | |||
; Zeichenprüfung | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
char.IsLetterOrDigit(ch); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: Prüft Zeichen auf Buchstabe/Ziffer. | |||
; Null/Empty/WhiteSpace | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
string.IsNullOrEmpty(str); | |||
string.IsNullOrWhiteSpace(str); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: Prüft auf leere oder nur Leerzeichen. | |||
== | == Profi == | ||
; StringBuilder (für viele Änderungen) | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
var sb = new StringBuilder().Append("A").Append("B"); | |||
string result = sb.ToString(); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: StringBuilder für viele Verkettungen. | |||
; Span-Slicing & Split (Performance) | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
var | var teil = str.AsSpan().Slice(2, 3); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: AsSpan/Slice für schnelle Teilstrings. | |||
; Sicherheitsrelevanter Vergleich | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
CryptographicOperations.FixedTimeEquals( | CryptographicOperations.FixedTimeEquals( | ||
| Zeile 117: | Zeile 87: | ||
MemoryMarshal.AsBytes(eingabe.AsSpan())); | MemoryMarshal.AsBytes(eingabe.AsSpan())); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: FixedTimeEquals für sichere Vergleiche. | |||
; Interpolated String Handler | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
[InterpolatedStringHandler] | [InterpolatedStringHandler] | ||
public ref struct LogHandler { | public ref struct LogHandler { } | ||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: Eigene Handler für Logging/Performance. | |||
; Raw String Literals (C# 11) | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
string json = """ | string json = """ | ||
| Zeile 141: | Zeile 105: | ||
"""; | """; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: Mehrzeilige Strings mit """. | |||
; Escapes & Normalisierung | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
string pfad = @"C:\Temp\log.txt"; | string pfad = @"C:\Temp\log.txt"; | ||
string norm = str.Normalize(NormalizationForm.FormC); | string norm = str.Normalize(NormalizationForm.FormC); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* Merkzettel: @ für Pfade, Normalize für Unicode. | |||
== Zusammenfassung == | == Zusammenfassung == | ||
Kurzliste: | Kurzliste Anfänger: Deklaration, Verkettung, Eigenschaften, Vergleich, Suchen, Extrahieren, Split, Join, Trim, Replace | ||
Kurzliste Fortgeschritten: Formatierung, Groß/Klein, Insert, Remove, Pad, Zeichenprüfung, Null/Empty | |||
Kurzliste Profi: StringBuilder, Span, Sicherheitsvergleich, Interpolated Handler, Raw Literals, Escapes, Normalisierung | |||
Aktuelle Version vom 1. September 2025, 23:58 Uhr
Hier ist die Übersicht, sortiert von Anfänger bis Profi, jeweils mit Beispielcode und Merkzettel:
Anfänger
- Deklaration & Verkettung
string name = "Alice";
string full = vorname + " " + nachname;
- Merkzettel: Strings sind Zeichenketten. Verkettung mit +.
- Eigenschaften & Vergleich
int len = str.Length;
bool gleich = str == "abc";
- Merkzettel: .Length gibt die Länge. == vergleicht Werte.
- Suchen & Extrahieren
bool hat = str.Contains("abc");
char c = str[0];
string teil = str.Substring(2, 3);
- Merkzettel: .Contains prüft auf Teilstring, [i] für Zeichen, Substring für Ausschnitt.
- Aufteilen & Zusammenfügen
var parts = str.Split(',');
string joined = string.Join(";", parts);
- Merkzettel: Split teilt, Join verbindet.
- Trimmen & Ersetzen
str.Trim();
str.Replace("alt", "neu");
- Merkzettel: Trim entfernt Leerzeichen, Replace ersetzt Text.
Fortgeschritten
- Formatierung & Groß/Kleinschreibung
string s = $"Wert: {value:N2}";
str.ToUpperInvariant();
- Merkzettel: $"" für Interpolation, ToUpper/ToLower für Umwandlung.
- Einfügen & Entfernen & Pad
str.Insert(2, "X");
str.Remove(1, 2);
"42".PadLeft(5, '0');
- Merkzettel: Insert/Remove ändern Text, PadLeft/Right füllt auf.
- Zeichenprüfung
char.IsLetterOrDigit(ch);
- Merkzettel: Prüft Zeichen auf Buchstabe/Ziffer.
- Null/Empty/WhiteSpace
string.IsNullOrEmpty(str);
string.IsNullOrWhiteSpace(str);
- Merkzettel: Prüft auf leere oder nur Leerzeichen.
Profi
- StringBuilder (für viele Änderungen)
var sb = new StringBuilder().Append("A").Append("B");
string result = sb.ToString();
- Merkzettel: StringBuilder für viele Verkettungen.
- Span-Slicing & Split (Performance)
var teil = str.AsSpan().Slice(2, 3);
- Merkzettel: AsSpan/Slice für schnelle Teilstrings.
- Sicherheitsrelevanter Vergleich
CryptographicOperations.FixedTimeEquals(
MemoryMarshal.AsBytes("secret"u8),
MemoryMarshal.AsBytes(eingabe.AsSpan()));
- Merkzettel: FixedTimeEquals für sichere Vergleiche.
- Interpolated String Handler
[InterpolatedStringHandler]
public ref struct LogHandler { }
- Merkzettel: Eigene Handler für Logging/Performance.
- Raw String Literals (C# 11)
string json = """
{
"id": 1,
"name": "Alice"
}
""";
- Merkzettel: Mehrzeilige Strings mit """.
- Escapes & Normalisierung
string pfad = @"C:\Temp\log.txt";
string norm = str.Normalize(NormalizationForm.FormC);
- Merkzettel: @ für Pfade, Normalize für Unicode.
Zusammenfassung
Kurzliste Anfänger: Deklaration, Verkettung, Eigenschaften, Vergleich, Suchen, Extrahieren, Split, Join, Trim, Replace Kurzliste Fortgeschritten: Formatierung, Groß/Klein, Insert, Remove, Pad, Zeichenprüfung, Null/Empty Kurzliste Profi: StringBuilder, Span, Sicherheitsvergleich, Interpolated Handler, Raw Literals, Escapes, Normalisierung