C#:
Umformung eines Strings in Kleinbuchstaben
So geht’s:
string original = "Hallo Welt!";
string klein = original.ToLowerInvariant();
Console.WriteLine(klein); // Ausgabe: hallo welt!
Das ToLowerInvariant()
berücksichtigt keine lokale kulturelle Unterschiede. Es gibt aber auch ToLower()
, das die Kultur des aktuellen Threads berücksichtigt. Hier ein Beispiel:
string original = "Straße";
string kleinInvariant = original.ToLowerInvariant();
string klein = original.ToLower();
Console.WriteLine(kleinInvariant); // Ausgabe: strasse
Console.WriteLine(klein); // Ausgabe: straße (in deutscher Kultur)
Tiefgang:
Früher, als die internationale Softwareentwicklung nicht so verbreitet war, gab es meist nur ToLower()
, das abhängig von der Kultur des Betriebssystems war. Heute ist die invariante Methode wichtig, weil Software global genutzt wird.
Alternativen: Neben .ToLower()
und .ToLowerInvariant()
kann man mit String.Compare()
und String.Equals()
mit dem Parameter StringComparison.OrdinalIgnoreCase
vergleichen, ohne den String zu verändern.
Implementierungsdetails: .ToLowerInvariant()
und .ToLower()
benutzen beide die Unicode-Regeln für die Kleinbuchstaben-Umwandlung. Sie durchlaufen den String und ersetzen jeden Großbuchstaben durch seinen kleinbuchstabigen Gegenpart.