Share via


Ändern der Groß-/Kleinschreibung in .NET

Wenn Sie eine Anwendung schreiben, die Benutzereingaben akzeptiert, können Sie nicht sicher sein, ob die Daten in Groß- oder Kleinschreibung eingegeben werden. Häufig möchten Sie, dass Zeichenfolgen in einheitlicher Schreibung vorliegen, insbesondere, wenn sie in der Benutzeroberfläche angezeigt werden. In der folgenden Tabelle sind drei Methoden zur Änderung der Groß-/Kleinschreibung beschrieben. Die ersten beiden Methoden stellen eine Überladung bereit, die eine Kultur akzeptiert.

Methodenname Verwendung
String.ToUpper Konvertiert alle Zeichen in einer Zeichenfolge in Großbuchstaben.
String.ToLower Konvertiert alle Zeichen in einer Zeichenfolge in Kleinbuchstaben.
TextInfo.ToTitleCase Konvertiert eine Zeichenfolge in Titelschreibung.

Warnung

Die String.ToUpper- und die String.ToLower-Methode sollte nicht dazu verwendet werden, Zeichenfolgen zu konvertieren, um diese zu vergleichen oder auf Gleichheit zu testen. Weitere Informationen finden Sie im Abschnitt Vergleichen von Zeichenfolgen in gemischter Groß-/Kleinschreibung.

Vergleichen von Zeichenfolgen in gemischter Groß-/Kleinschreibung

Wenn Sie Zeichenfolgen in gemischter Schreibung vergleichen möchten, um deren Reihenfolge zu ermitteln, rufen Sie eine der Überladungen der String.CompareTo-Methode mit einem comparisonType-Parameter auf, und geben Sie entweder StringComparison.CurrentCultureIgnoreCase oder StringComparison.InvariantCultureIgnoreCase oder StringComparison.OrdinalIgnoreCase als Wert für das comparisonType-Argument an. Soll für einen Vergleich eine bestimmte Kultur verwendet werden, die nicht die aktuelle Kultur ist, rufen Sie eine Überladung der String.CompareTo-Methode mit einem culture- und einem options-Parameter auf, und geben Sie CompareOptions.IgnoreCase als Wert für das options-Argument an.

Wenn Sie Zeichenfolgen in gemischter Groß-/Kleinschreibung vergleichen möchten, um zu ermitteln, ob sie gleich sind, rufen Sie eine der Überladungen der String.Equals-Methode mit einem comparisonType-Parameter auf, und geben Sie entweder StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCase oder StringComparison.OrdinalIgnoreCase als Wert für das comparisonType-Argument an.

Weitere Informationen finden Sie unter Empfohlene Vorgehensweisen für die Verwendung von Zeichenfolgen.

ToUpper-Methode

Die String.ToUpper-Methode ändert alle Zeichen in einer Zeichenfolge in Großbuchstaben. Im folgenden Beispiel wird die Zeichenfolge "Hello World!" aus der gemischten Schreibung in Großbuchstaben konvertiert.

string properString = "Hello World!";
Console.WriteLine(properString.ToUpper());
// This example displays the following output:
//       HELLO WORLD!
Dim MyString As String = "Hello World!"
Console.WriteLine(MyString.ToUpper())
' This example displays the following output:
'       HELLO WORLD!

Das vorhergehende Beispiel ist standardmäßig kulturabhängig, d. h., in ihm werden hinsichtlich Groß- und Kleinschreibung die Konventionen der aktuellen Kultur verwendet. Wenn Sie eine kulturunabhängige Änderung der Groß-/Kleinschreibung ausführen oder die Schreibungskonventionen einer bestimmten Kultur anwenden möchten, verwenden Sie die String.ToUpper(CultureInfo)-Methodenüberladung, und geben Sie den Wert CultureInfo.InvariantCulture oder ein System.Globalization.CultureInfo-Objekt, das der angegebenen Kultur entspricht, für den culture-Parameter an. Ein Beispiel, in dem gezeigt wird, wie die ToUpper-Methode verwendet wird, um eine kulturunabhängige Änderung der Groß-/Kleinschreibung auszuführen, finden Sie unter Durchführen kulturunabhängiger Schreibungsänderungen.

ToLower-Methode

Die String.ToLower-Methode entspricht der vorherigen Methode mit dem Unterschied, dass sie alle Zeichen in einer Zeichenfolge in Kleinbuchstaben konvertiert. Im folgenden Beispiel wird die Zeichenfolge "Hello World!" in Kleinbuchstaben konvertiert.

string properString = "Hello World!";
Console.WriteLine(properString.ToLower());
// This example displays the following output:
//       hello world!
Dim MyString As String = "Hello World!"
Console.WriteLine(MyString.ToLower())
' This example displays the following output:
'       hello world!

Das vorhergehende Beispiel ist standardmäßig kulturabhängig, d. h., in ihm werden hinsichtlich Groß- und Kleinschreibung die Konventionen der aktuellen Kultur verwendet. Wenn Sie eine kulturunabhängige Änderung der Groß-/Kleinschreibung ausführen oder die Schreibungskonventionen einer bestimmten Kultur anwenden möchten, verwenden Sie die String.ToLower(CultureInfo)-Methodenüberladung, und geben Sie den Wert CultureInfo.InvariantCulture oder ein System.Globalization.CultureInfo-Objekt, das der angegebenen Kultur entspricht, für den culture-Parameter an. Ein Beispiel, in dem gezeigt wird, wie die ToLower(CultureInfo)-Methode verwendet wird, um eine kulturunabhängige Änderung der Groß-/Kleinschreibung auszuführen, finden Sie unter Durchführen kulturunabhängiger Schreibungsänderungen.

ToTitleCase-Methode

Die TextInfo.ToTitleCase-Methode konvertiert das erste Zeichen jedes Worts in einen Großbuchstaben und die übrigen Zeichen in Kleinbuchstaben. Wörter, die vollständig in Großbuchstaben vorliegen, werden als Akronyme angesehen und nicht konvertiert.

Die TextInfo.ToTitleCase-Methode ist kulturabhängig, d. h., sie verwendet die Schreibungskonventionen einer bestimmten Kultur. Um die Methode aufzurufen, rufen Sie zuerst das TextInfo-Objekt, das die Schreibungskonventionen der bestimmten Kultur angibt, aus der CultureInfo.TextInfo-Eigenschaft dieser Kultur ab.

Im folgenden Beispiel wird jede Zeichenfolge in einem Array an die TextInfo.ToTitleCase-Methode übergeben. Die Zeichenfolgen enthalten sowohl Titelzeichenfolgen als auch Akronyme. Die Zeichenfolgen werden in Titelschreibung konvertiert, indem die Schreibungskonventionen der Kultur Englisch (USA) verwendet werden.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] values = { "a tale of two cities", "gROWL to the rescue",
                          "inside the US government", "sports and MLB baseball",
                          "The Return of Sherlock Holmes", "UNICEF and children"};

      TextInfo ti = CultureInfo.CurrentCulture.TextInfo;
      foreach (var value in values)
         Console.WriteLine("{0} --> {1}", value, ti.ToTitleCase(value));
   }
}
// The example displays the following output:
//    a tale of two cities --> A Tale Of Two Cities
//    gROWL to the rescue --> Growl To The Rescue
//    inside the US government --> Inside The US Government
//    sports and MLB baseball --> Sports And MLB Baseball
//    The Return of Sherlock Holmes --> The Return Of Sherlock Holmes
//    UNICEF and children --> UNICEF And Children
Imports System.Globalization

Module Example
    Public Sub Main()
        Dim values() As String = {"a tale of two cities", "gROWL to the rescue",
                                   "inside the US government", "sports and MLB baseball",
                                   "The Return of Sherlock Holmes", "UNICEF and children"}

        Dim ti As TextInfo = CultureInfo.CurrentCulture.TextInfo
        For Each value In values
            Console.WriteLine("{0} --> {1}", value, ti.ToTitleCase(value))
        Next
    End Sub
End Module
' The example displays the following output:
'    a tale of two cities --> A Tale Of Two Cities
'    gROWL to the rescue --> Growl To The Rescue
'    inside the US government --> Inside The US Government
'    sports and MLB baseball --> Sports And MLB Baseball
'    The Return of Sherlock Holmes --> The Return Of Sherlock Holmes
'    UNICEF and children --> UNICEF And Children

Beachten Sie, dass die TextInfo.ToTitleCase-Methode, obwohl sie kulturabhängig ist, keine linguistisch korrekten Regeln für Groß-/Kleinschreibung bereitstellt. Beispielsweise konvertiert die Methode die Zeichenfolge "a tale of two cities" im vorherigen Beispiel in "A Tale Of Two Cities". Die linguistisch korrekte Schreibung für die Kultur "en-US" ist aber "A Tale of Two Cities".

Siehe auch