Sdílet prostřednictvím


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 cultureoptions 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).

Viz také