Delen via


Hoofdlettergebruik in .NET

Als u een toepassing schrijft die invoer van een gebruiker accepteert, kunt u nooit zeker weten welk geval (boven of lager) ze gebruiken om de gegevens in te voeren. Vaak wilt u dat tekenreeksen consistent worden gecased, met name als u ze in de gebruikersinterface weergeeft. In de volgende tabel worden drie methoden voor hoofdletters en kleine letters beschreven. De eerste twee methoden bieden een overbelasting die een cultuur accepteert.

Methodenaam Gebruik
String.ToUpper Converteert alle tekens in een tekenreeks naar hoofdletters.
String.ToLower Converteert alle tekens in een tekenreeks naar kleine letters.
TextInfo.ToTitleCase Converteert een tekenreeks naar titelcase.

Waarschuwing

De String.ToUpper methoden en String.ToLower methoden mogen niet worden gebruikt om tekenreeksen te converteren om ze te vergelijken of te testen op gelijkheid. Zie de sectie Vergelijkingstekenreeksen van gemengde case voor meer informatie.

Tekenreeksen van gemengde hoofdletters vergelijken

Als u tekenreeksen van gemengde hoofdletters wilt vergelijken om de volgorde te bepalen, roept u een van de overbelastingen van de String.CompareTo methode aan met een comparisonType parameter en geeft u een waarde op van, StringComparison.CurrentCultureIgnoreCaseStringComparison.InvariantCultureIgnoreCaseof StringComparison.OrdinalIgnoreCase voor het comparisonType argument. Voor een vergelijking met een andere cultuur dan de huidige cultuur roept u een overbelasting van de String.CompareTo methode aan met zowel een als cultureoptions parameter en geeft u een waarde van CompareOptions.IgnoreCase als het options argument op.

Als u tekenreeksen van gemengde hoofdletters wilt vergelijken om te bepalen of deze gelijk zijn, roept u een van de overbelastingen van de String.Equals methode aan met een comparisonType parameter en geeft u een waarde op van StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCaseof StringComparison.OrdinalIgnoreCase voor het comparisonType argument.

Zie Aanbevolen procedures voor het gebruik van tekenreeksen voor meer informatie.

ToUpper Methode

De String.ToUpper methode wijzigt alle tekens in een tekenreeks in hoofdletters. In het volgende voorbeeld wordt de tekenreeks 'Hallo wereld!' geconverteerd van gemengde hoofdletters naar hoofdletters.

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!

Het voorgaande voorbeeld is standaard cultuurgevoelig; het past de casing conventies van de huidige cultuur toe. Als u een cultuurgevoelige casewijziging wilt uitvoeren of de casingconventies van een bepaalde cultuur wilt toepassen, gebruikt u de String.ToUpper(CultureInfo) methode overbelasting en levert u een waarde van CultureInfo.InvariantCulture of een System.Globalization.CultureInfo object dat de opgegeven cultuur aan de culture parameter vertegenwoordigt. Voor een voorbeeld waarin wordt gedemonstreert hoe u de ToUpper methode gebruikt om een wijziging in hoofdlettergevoelige gevallen uit te voeren, raadpleegt u Wijzigingen in hoofdlettergevoelige gevallen uitvoeren.

ToLower Methode

De String.ToLower methode is vergelijkbaar met de vorige methode, maar converteert in plaats daarvan alle tekens in een tekenreeks naar kleine letters. In het volgende voorbeeld wordt de tekenreeks 'Hallo wereld!' geconverteerd naar kleine letters.

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!

Het voorgaande voorbeeld is standaard cultuurgevoelig; het past de casing conventies van de huidige cultuur toe. Als u een cultuurgevoelige casewijziging wilt uitvoeren of de casingconventies van een bepaalde cultuur wilt toepassen, gebruikt u de String.ToLower(CultureInfo) methode overbelasting en levert u een waarde van CultureInfo.InvariantCulture of een System.Globalization.CultureInfo object dat de opgegeven cultuur aan de culture parameter vertegenwoordigt. Voor een voorbeeld waarin wordt gedemonstreert hoe u de ToLower(CultureInfo) methode gebruikt om een wijziging in hoofdlettergevoelige gevallen uit te voeren, raadpleegt u Wijzigingen in hoofdlettergevoelige gevallen uitvoeren.

ToTitleCase Methode

Hiermee TextInfo.ToTitleCase wordt het eerste teken van elk woord geconverteerd naar hoofdletters en de resterende tekens naar kleine letters. Echter, woorden die volledig hoofdletters zijn, worden verondersteld acroniemen te zijn en worden niet geconverteerd.

De TextInfo.ToTitleCase methode is cultuurgevoelig, dat wil gezegd, het maakt gebruik van de casingconventies van een bepaalde cultuur. Als u de methode wilt aanroepen, haalt u eerst het TextInfo object op dat de casingconventies van de specifieke cultuur vertegenwoordigt uit de CultureInfo.TextInfo eigenschap van een bepaalde cultuur.

In het volgende voorbeeld wordt elke tekenreeks in een matrix doorgegeven aan de TextInfo.ToTitleCase methode. De tekenreeksen bevatten de juiste titeltekenreeksen en acroniemen. De tekenreeksen worden geconverteerd naar titelcase met behulp van de hoofdletterconventies van de Engelse cultuur (Verenigde Staten).

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

Houd er rekening mee dat hoewel het cultuurgevoelig is, de TextInfo.ToTitleCase methode geen taalkundig juiste hoofdletterregels biedt. In het vorige voorbeeld converteert de methode bijvoorbeeld 'een verhaal van twee steden' naar 'A Tale Of Two Cities'. De taalkundig juiste titel voor de en-US-cultuur is echter 'A Tale of Two Cities'.

Zie ook