Změna velikosti písmen v .NET
Pokud napíšete aplikaci, která přijímá vstup od uživatele, nikdy si nejste jistí, jaký případ (horní nebo dolní) použije k zadání dat. Často chcete, aby se řetězce konzistentně rozlišovaly, zejména pokud je zobrazujete v uživatelském rozhraní. Následující tabulka popisuje tři metody změny velkých a malých písmen. První dvě metody poskytují přetížení, které přijímá jazykovou verzi.
Název metody | Používání |
---|---|
String.ToUpper | Převede všechny znaky v řetězci na velká písmena. |
String.ToLower | Převede všechny znaky v řetězci na malá písmena. |
TextInfo.ToTitleCase | Převede řetězec na velká písmena názvu. |
Upozorňující
Metody String.ToUpper a String.ToLower metody by neměly být použity k převodu řetězců, aby je bylo možné porovnat nebo otestovat rovnost. Další informace najdete v části Porovnání řetězců smíšených případů .
Porovnání řetězců smíšených případů
Chcete-li porovnat řetězce smíšeného případu k určení jejich pořadí, zavolejte jedno z přetížení String.CompareTo metody s comparisonType
parametrem a zadejte hodnotu buď StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCasenebo StringComparison.OrdinalIgnoreCase pro comparisonType
argument. Pro porovnání používající jinou jazykovou verzi než aktuální jazykovou verzi zavolejte přetížení String.CompareTo metody s parametrem culture
options
a zadejte hodnotu CompareOptions.IgnoreCase jako options
argument.
Chcete-li porovnat řetězce smíšeného případu k určení, zda jsou stejné, zavolejte jedno z přetížení String.Equals metody s parametrem comparisonType
a zadejte hodnotu buď StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCasenebo StringComparison.OrdinalIgnoreCase pro comparisonType
argument.
Další informace najdete v tématu Osvědčené postupy pro používání řetězců.
ToUpper
Metoda
Metoda String.ToUpper změní všechny znaky v řetězci na velká písmena. Následující příklad převede řetězec "Hello World!" ze smíšeného případu na velká písmena.
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!
Předchozí příklad je ve výchozím nastavení citlivý na jazykovou verzi; používá konvence velikostí v aktuální jazykové verzi. Chcete-li provést změnu velikosti písmen nerozlišující jazykovou verzi nebo použít konvence velikosti písmen konkrétní jazykové verze, použijte String.ToUpper(CultureInfo) přetížení metody a zadejte hodnotu CultureInfo.InvariantCulture nebo System.Globalization.CultureInfo objekt, který představuje zadanou jazykovou verzi parametru culture
. Příklad, který ukazuje, jak použít metodu ToUpper k provedení změny malá a malá písmena nerozlišující jazykovou verzi, viz Provedení změn nerozlišující malá písmena jazykové verze.
ToLower
Metoda
Metoda String.ToLower je podobná předchozí metodě, ale místo toho převede všechny znaky v řetězci na malá písmena. Následující příklad převede řetězec "Hello World!" na malá písmena.
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!
Předchozí příklad je ve výchozím nastavení citlivý na jazykovou verzi; používá konvence velikostí v aktuální jazykové verzi. Chcete-li provést změnu velikosti písmen nerozlišující jazykovou verzi nebo použít konvence velikosti písmen konkrétní jazykové verze, použijte String.ToLower(CultureInfo) přetížení metody a zadejte hodnotu CultureInfo.InvariantCulture nebo System.Globalization.CultureInfo objekt, který představuje zadanou jazykovou verzi parametru culture
. Příklad, který ukazuje, jak použít metodu ToLower(CultureInfo) k provedení změny malá a malá písmena nerozlišující jazykovou verzi, viz Provedení změn nerozlišující malá písmena jazykové verze.
ToTitleCase
Metoda
Převede TextInfo.ToTitleCase první znak každého slova na velká a zbývající znaky na malá písmena. Předpokládá se však, že slova, která jsou zcela velká písmena, jsou zkratky a nejsou převedeny.
Metoda je citlivá na jazykovou verzi. To TextInfo.ToTitleCase znamená, že používá konvence velikostí písmen konkrétní jazykové verze. Chcete-li volat metodu, nejprve načtěte TextInfo objekt, který představuje casing konvence konkrétní jazykové verze z CultureInfo.TextInfo vlastnosti konkrétní jazykové verze.
Následující příklad předá každý řetězec v poli metodě TextInfo.ToTitleCase . Řetězce obsahují správné názvy řetězců i zkratky. Řetězce se převedou na velká písmena pomocí konvencí velikosti písmen jazykové verze angličtiny (USA).
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
Všimněte si, že i když je citlivá na jazykovou verzi, TextInfo.ToTitleCase metoda neposkytuje lingvisticky správná pravidla velikosti písmen. Například v předchozím příkladu metoda převede "příběh dvou měst" na "A Tale Of Two Cities". Jazykově správný nadpis pro jazykovou kulturu en-US je "A Tale of Two Cities" (Příběh dvou měst).