TextInfo.ToTitleCase(String) Methode

Definitie

Converteert de opgegeven tekenreeks naar titelcase (met uitzondering van woorden die volledig in hoofdletters staan, die als acroniemen worden beschouwd).

public:
 System::String ^ ToTitleCase(System::String ^ str);
public string ToTitleCase(string str);
member this.ToTitleCase : string -> string
Public Function ToTitleCase (str As String) As String

Parameters

str
String

De tekenreeks die moet worden geconverteerd naar titelcase.

Retouren

De opgegeven tekenreeks is geconverteerd naar titelcase.

Uitzonderingen

str is null.

Voorbeelden

In het volgende voorbeeld wordt de behuizing van een tekenreeks gewijzigd op basis van de Engelse cultuur (Verenigde Staten), met de cultuurnaam en-US.

using System;
using System.Globalization;

public class SamplesTextInfo  {

   public static void Main()  {

      // Defines the string with mixed casing.
      string myString = "wAr aNd pEaCe";

      // Creates a TextInfo based on the "en-US" culture.
      TextInfo myTI = new CultureInfo("en-US",false).TextInfo;

      // Changes a string to lowercase.
      Console.WriteLine( "\"{0}\" to lowercase: {1}", myString, myTI.ToLower( myString ) );

      // Changes a string to uppercase.
      Console.WriteLine( "\"{0}\" to uppercase: {1}", myString, myTI.ToUpper( myString ) );

      // Changes a string to titlecase.
      Console.WriteLine( "\"{0}\" to titlecase: {1}", myString, myTI.ToTitleCase( myString ) );
   }
}

/*
This code produces the following output.

"wAr aNd pEaCe" to lowercase: war and peace
"wAr aNd pEaCe" to uppercase: WAR AND PEACE
"wAr aNd pEaCe" to titlecase: War And Peace

*/
Imports System.Globalization

Public Class SamplesTextInfo

   Public Shared Sub Main()

      ' Defines the string with mixed casing.
      Dim myString As String = "wAr aNd pEaCe"

      ' Creates a TextInfo based on the "en-US" culture.
      Dim myTI As TextInfo = New CultureInfo("en-US", False).TextInfo

      ' Changes a string to lowercase.
      Console.WriteLine("""{0}"" to lowercase: {1}", myString, myTI.ToLower(myString))

      ' Changes a string to uppercase.
      Console.WriteLine("""{0}"" to uppercase: {1}", myString, myTI.ToUpper(myString))

      ' Changes a string to titlecase.
      Console.WriteLine("""{0}"" to titlecase: {1}", myString, myTI.ToTitleCase(myString))

   End Sub

End Class


'This code produces the following output.
'
'"wAr aNd pEaCe" to lowercase: war and peace
'"wAr aNd pEaCe" to uppercase: WAR AND PEACE
'"wAr aNd pEaCe" to titlecase: War And Peace

In het volgende voorbeeld wordt elke tekenreeks in een array doorgegeven aan de ToTitleCase methode. De strings bevatten de juiste titelstrings en acroniemen. De tekenreeksen worden geconverteerd naar titelcase met behulp van de conventies van de en-US cultuur.

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

Opmerkingen

Over het algemeen converteert titelbehuizing het eerste teken van een woord naar hoofdletters en de rest van de tekens naar kleine letters. Deze methode biedt momenteel echter geen juiste behuizing om een woord te converteren dat volledig hoofdletters is, zoals een acroniem. In de volgende tabel ziet u hoe de methode verschillende tekenreeksen weergeeft.

Input Language Verwacht resultaat Werkelijk resultaat
oorlog en vrede Engels Oorlog en vrede Oorlog en vrede
Peralgoritmener durch die Galaxis Duits Per Meerjariger durch die Galaxis Per Waarnemener Durch Die Galaxis
les naufragés d'ythaq Frans Les Naufragés d'Ythaq Les Naufragés D'ythaq

Zoals hierboven wordt geïllustreerd, biedt de ToTitleCase methode een willekeurig hoofdlettergedrag dat niet noodzakelijkerwijs taalkundig correct is. Een taalkundig juiste oplossing vereist aanvullende regels en het huidige algoritme is iets eenvoudiger en sneller. We behouden ons het recht voor om deze API in de toekomst langzamer te maken.

De huidige implementatie van de ToTitleCase methode levert een uitvoertekenreeks op die dezelfde lengte heeft als de invoertekenreeks. Dit gedrag wordt echter niet gegarandeerd en kan in een toekomstige implementatie veranderen.

Van toepassing op

Zie ook