TextInfo.ToTitleCase(String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует указанную строку в регистр заголовка (за исключением слов, которые полностью находятся в верхнем регистре, которые считаются акронимами).
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
Строка для преобразования в регистр заголовка.
Возвращаемое значение
Указанная строка, преобразованная в регистр заголовка.
Исключения
str равно null.
Примеры
В следующем примере изменяется регистр строки на основе языка и региональных параметров (США) с именем языка и региональных параметров 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
В следующем примере каждая строка в массиве передается методу ToTitleCase . Строки включают корректные строки заголовков, а также акронимы. Строки преобразуются в заголовок регистра с помощью соглашений en-US языка и региональных параметров.
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
Комментарии
Как правило, регистр заголовка преобразует первый символ слова в верхний регистр и остальные символы в нижний регистр. Однако этот метод в настоящее время не предоставляет надлежащее регистр для преобразования слова, которое является полностью верхним регистром, например аббревиатурой. В следующей таблице показано, как метод отрисовывает несколько строк.
| Input | Language | Ожидаемый результат | Фактический результат |
|---|---|---|---|
| война и мир | English | Война и мир | Война и мир |
| На ангальтер durch die Галакси | Немецкий | Пер Anhalter durch die Галакс | Пер Анхалтер Дурч Die Галакси |
| les naufragés d'ythaq | Французский | Les Naufragés d'Ythaq | Les Naufragés D'ythaq |
Как показано выше, метод обеспечивает произвольное поведение регистра, ToTitleCase которое не обязательно лингвистически правильно. Лингвистически правильное решение потребует дополнительных правил, и текущий алгоритм несколько проще и быстрее. Мы зарезервируем право сделать этот API медленнее в будущем.
Текущая реализация ToTitleCase метода дает выходную строку, ту же длину, что и входная строка. Однако это поведение не гарантируется и может измениться в будущей реализации.