TextInfo.ToTitleCase(String) 方法

定义

将指定字符串转换为词首字母大写(不包含视为首字母缩写的全部大写词)。Converts the specified string to title case (except for words that are entirely in uppercase, which are considered to be acronyms).

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

参数

str
String

转换为标题大写的字符串。The string to convert to title case.

返回

String

转换为标题大写的指定字符串。The specified string converted to title case.

例外

strnullstr is null.

示例

下面的示例基于英语(美国)区域性(区域性名称为 en-US)更改字符串的大小写。The following example changes the casing of a string based on the English (United States) culture, with the culture name en-US.

using namespace System;
using namespace System::Globalization;
int main()
{
   
   // Defines the String* with mixed casing.
   String^ myString = "wAr aNd pEaCe";
   
   // Creates a TextInfo based on the S"en-US" culture.
   CultureInfo^ MyCI = gcnew CultureInfo( "en-US",false );
   TextInfo^ myTI = MyCI->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.

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

*/
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

下面的示例将数组中的每个字符串传递至 ToTitleCase 方法。The following example passes each string in an array to the ToTitleCase method. 字符串包含适当的标题字符串以及首字母缩写词。The strings include proper title strings as well as acronyms. 通过使用 en-US 区域性的约定将字符串转换为标题大小写。The strings are converted to title case by using the conventions of the en-US culture.

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

注解

通常情况下,标题大小写将单词的第一个字符转换为大写,并将其余字符转换为小写。Generally, title casing converts the first character of a word to uppercase and the rest of the characters to lowercase. 但是,此方法当前不提供适当的大小写来转换完全大写的单词,如首字母缩写词。However, this method does not currently provide proper casing to convert a word that is entirely uppercase, such as an acronym. 下表显示了方法呈现几个字符串的方式。The following table shows the way the method renders several strings.

输入Input 语言Language 预期结果Expected result 实际结果Actual result
war 和和平war and peace 英语English War 和和平War and Peace War 和和平War And Peace
每 anhalter durch 骰子 GalaxisPer anhalter durch die Galaxis 德语German 每 Anhalter durch 骰子 GalaxisPer Anhalter durch die Galaxis 每 Anhalter Durch 骰子 GalaxisPer Anhalter Durch Die Galaxis
les naufragés d'ythaqles naufragés d'ythaq 法语French Les Naufragés d'YthaqLes Naufragés d'Ythaq Les Naufragés D'ythaqLes Naufragés D'ythaq

如上所述, ToTitleCase 方法提供了任意大小写行为,不一定是语言正确的行为。As illustrated above, the ToTitleCase method provides an arbitrary casing behavior which is not necessarily linguistically correct. 语言正确的解决方案需要额外的规则,而当前算法有些简单、更快。A linguistically correct solution would require additional rules, and the current algorithm is somewhat simpler and faster. 我们保留以后使此 API 变慢的权利。We reserve the right to make this API slower in the future.

此方法的当前实现将生成一个与 ToTitleCase 输入字符串长度相同的输出字符串。The current implementation of the ToTitleCase method yields an output string that is the same length as the input string. 但是,这种行为并不保证,在将来的实现中可能会发生变化。However, this behavior is not guaranteed and could change in a future implementation.

适用于

另请参阅