Przypadek zmiany na platformie .NET
Jeśli napiszesz aplikację, która akceptuje dane wejściowe od użytkownika, nigdy nie możesz mieć pewności, w jakim przypadku (górna lub niższa) będą one używane do wprowadzania danych. Często ciągi mają być spójne, szczególnie w przypadku wyświetlania ich w interfejsie użytkownika. W poniższej tabeli opisano trzy metody zmiany wielkości liter. Dwie pierwsze metody zapewniają przeciążenie, które akceptuje kulturę.
Nazwa metody | Używanie |
---|---|
String.ToUpper | Konwertuje wszystkie znaki w ciągu na wielkie litery. |
String.ToLower | Konwertuje wszystkie znaki w ciągu na małe litery. |
TextInfo.ToTitleCase | Konwertuje ciąg na przypadek tytułu. |
Ostrzeżenie
Metody String.ToUpper i String.ToLower nie powinny być używane do konwertowania ciągów w celu ich porównywania ani testowania pod kątem równości. Aby uzyskać więcej informacji, zobacz sekcję Porównanie ciągów przypadku mieszanego .
Porównywanie ciągów wielkości liter mieszanych
Aby porównać ciągi przypadku mieszanego, aby określić ich kolejność, wywołaj jedno z przeciążeń String.CompareTo metody za pomocą comparisonType
parametru i podaj wartość StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCaselub StringComparison.OrdinalIgnoreCase dla argumentu comparisonType
. W przypadku porównania przy użyciu określonej kultury innej niż bieżąca kultura wywołaj przeciążenie String.CompareTo metody z parametrem culture
i options
i i podaj wartość CompareOptions.IgnoreCase jako options
argument.
Aby porównać ciągi przypadku mieszanego, aby określić, czy są równe, wywołaj jedno z przeciążeń String.Equals metody za pomocą comparisonType
parametru i podaj wartość StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCaselub StringComparison.OrdinalIgnoreCase dla argumentu comparisonType
.
Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące używania ciągów.
ToUpper
Metoda
Metoda String.ToUpper zmienia wszystkie znaki w ciągu na wielkie litery. Poniższy przykład konwertuje ciąg "Hello World!" z wielkiej litery na wielkie litery.
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!
Powyższy przykład jest domyślnie wrażliwy na kulturę; stosuje konwencje wielkości liter bieżącej kultury. Aby przeprowadzić zmianę wielkości liter bez uwzględniania kultury lub zastosować konwencje wielkości liter dla określonej kultury, użyj String.ToUpper(CultureInfo) przeciążenia metody i podaj wartość CultureInfo.InvariantCulture lub System.Globalization.CultureInfo obiekt reprezentujący określoną kulturę do parametru culture
. Aby zapoznać się z przykładem użycia ToUpper metody w celu przeprowadzenia zmiany wielkości liter bez uwzględniania kultury, zobacz Perform culture-in-insensitive case changes (Wykonywanie zmian wielkości liter bez uwzględniania kultury).
ToLower
Metoda
Metoda jest podobna String.ToLower do poprzedniej metody, ale zamiast tego konwertuje wszystkie znaki w ciągu na małe litery. Poniższy przykład konwertuje ciąg "Hello World!" na małe litery.
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!
Powyższy przykład jest domyślnie wrażliwy na kulturę; stosuje konwencje wielkości liter bieżącej kultury. Aby przeprowadzić zmianę wielkości liter bez uwzględniania kultury lub zastosować konwencje wielkości liter dla określonej kultury, użyj String.ToLower(CultureInfo) przeciążenia metody i podaj wartość CultureInfo.InvariantCulture lub System.Globalization.CultureInfo obiekt reprezentujący określoną kulturę do parametru culture
. Aby zapoznać się z przykładem użycia ToLower(CultureInfo) metody w celu przeprowadzenia zmiany wielkości liter bez uwzględniania kultury, zobacz Perform culture-in-insensitive case changes (Wykonywanie zmian wielkości liter bez uwzględniania kultury).
ToTitleCase
Metoda
Element TextInfo.ToTitleCase konwertuje pierwszy znak każdego wyrazu na wielkie litery i pozostałe znaki na małe litery. Jednak wyrazy, które są całkowicie wielkie, przyjmuje się, że są akronimami i nie są konwertowane.
Metoda TextInfo.ToTitleCase jest wrażliwa na kulturę, czyli używa konwencji wielkości liter określonej kultury. Aby wywołać metodę, należy najpierw pobrać TextInfo obiekt reprezentujący konwencje wielkości liter określonej kultury z CultureInfo.TextInfo właściwości określonej kultury.
Poniższy przykład przekazuje każdy ciąg w tablicy do TextInfo.ToTitleCase metody . Ciągi zawierają odpowiednie ciągi tytułu, a także akronimy. Ciągi są konwertowane na przypadek tytułu przy użyciu konwencji wielkości liter w języku angielskim (Stany Zjednoczone).
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
Należy pamiętać, że chociaż jest ona wrażliwa na kulturę, TextInfo.ToTitleCase metoda nie zapewnia lingwistycznej poprawności reguł wielkości liter. Na przykład w poprzednim przykładzie metoda konwertuje "opowieść o dwóch miastach" na "Opowieść o dwóch miastach". Jednak poprawna lingwistyczna wielkość tytułu dla kultury en-USA to "Opowieść o dwóch miastach".