Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если вы пишете приложение, которое принимает входные данные от пользователя, вы никогда не можете быть уверены в том, какой случай (верхний или нижний) он будет использовать для ввода данных. Часто необходимо привести строки к единому регистру, особенно если они отображаются в пользовательском интерфейсе. В следующей таблице описаны три метода изменения регистра. Первые два метода предоставляют перегрузку, которая принимает культуру.
| Имя метода | Использование |
|---|---|
| String.ToUpper | Преобразует все символы в строку в верхний регистр. |
| String.ToLower | Преобразует все символы в строке в нижний регистр. |
| TextInfo.ToTitleCase | Преобразует строку в регистр заголовка. |
Предупреждение
Методы String.ToUpper и String.ToLower не должны использоваться для преобразования строк с целью их сравнения или проверки на равенство. Дополнительные сведения см. в разделе "Сравнение строк смешанного регистра ".
Сравнение строк смешанного регистра
Чтобы сравнить строки смешанного регистра для определения их упорядочения, вызовите одну из перегрузок String.CompareTo метода с comparisonType параметром и укажите значение либо StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCaseлибо StringComparison.OrdinalIgnoreCase для аргумента comparisonType . Для сравнения, использующего определенные язык и региональные параметры, отличные от текущих, вызовите перегрузку метода с параметрами String.CompareTo и culture, указав значение options в качестве аргумента CompareOptions.IgnoreCase.
Вызовите одну из перегрузок метода String.Equals с параметром comparisonType и укажите значение либо StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCase, либо StringComparison.OrdinalIgnoreCase для аргумента comparisonType, чтобы сравнить строки смешанного регистра и определить, равны ли они.
Дополнительные сведения см. в рекомендациях по использованию строк.
ToUpperМетод
Метод String.ToUpper изменяет все символы в строке на верхний регистр. В следующем примере строка "Hello World!" преобразуется из смешанного регистра в прописные буквы.
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!
Предыдущий пример по умолчанию чувствителен к языковым и культурным настройкам; он применяет правила изменения регистра, соответствующие текущим настройкам культуры. Чтобы выполнить изменение регистра без учёта языка и региональных параметров или применить соглашения о регистре определенного языка и региональных параметров, используйте перегрузку метода String.ToUpper(CultureInfo) и укажите значение CultureInfo.InvariantCulture или объект System.Globalization.CultureInfo, представляющий указанный язык и региональные параметры, в параметре culture. Пример того, как использовать метод ToUpper, чтобы изменить регистр без учета культурных различий, см. в разделе «Выполнение изменений регистра без учета культурных различий».
ToLowerМетод
Метод String.ToLower аналогичен предыдущему методу, но вместо этого преобразует все символы в строке в нижний регистр. В следующем примере строка "Hello World!" преобразуется в нижний регистр.
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!
Предыдущий пример по умолчанию чувствителен к языковым и культурным настройкам; он применяет правила изменения регистра, соответствующие текущим настройкам культуры. Чтобы выполнить изменение регистра без учёта языка и региональных параметров или применить соглашения о регистре определенного языка и региональных параметров, используйте перегрузку метода String.ToLower(CultureInfo) и укажите значение CultureInfo.InvariantCulture или объект System.Globalization.CultureInfo, представляющий указанный язык и региональные параметры, в параметре culture. Пример того, как использовать метод ToLower(CultureInfo), чтобы изменить регистр без учета культурных различий, см. в разделе «Выполнение изменений регистра без учета культурных различий».
ToTitleCaseМетод
TextInfo.ToTitleCase преобразует первую букву каждого слова в верхний регистр, а оставшиеся буквы в нижний. Тем не менее, слова, которые являются полностью верхним регистром, считаются акронимами и не преобразуются.
Метод TextInfo.ToTitleCase учитывает язык и региональные параметры, то есть использует соглашения о регистре определенного языка и региональных параметров. Для вызова метода сначала извлекается TextInfo объект, представляющий соглашения о регистре конкретной культуры из CultureInfo.TextInfo свойства определенной культуры.
В следующем примере каждая строка в массиве передается методу TextInfo.ToTitleCase . Строки включают корректные строки заголовков, а также акронимы. Строки преобразуются в регистр заглавных букв с использованием соглашений о регистре культуры английского языка (США).
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($"{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
Обратите внимание, что, хотя метод TextInfo.ToTitleCase учитывает культурные особенности, он не предоставляет лингвистически правильные правила использования заглавных букв. Например, в предыдущем примере метод преобразует "сказку двух городов" в "Сказка о двух городах". Тем не менее, лингвистически корректное название для en-US культуры называется "Повесть о двух городах".