Eset módosítása a .NET-ben
Ha olyan alkalmazást ír, amely fogad bemenetet egy felhasználótól, soha nem lehet biztos abban, hogy milyen esetet (felső vagy alsó) használnak az adatok megadásához. Gyakran azt szeretné, hogy a sztringek egységesen legyenek kiállítva, különösen akkor, ha a felhasználói felületen jeleníti meg őket. Az alábbi táblázat három esetváltoztatási módszert ismertet. Az első két módszer túlterhelést biztosít, amely elfogadja a kultúrát.
Metódus neve | Használat |
---|---|
String.ToUpper | A sztring összes karakterét nagybetűssé alakítja. |
String.ToLower | A sztring összes karakterét kisbetűssé alakítja. |
TextInfo.ToTitleCase | Sztringet címes esetté alakít át. |
Figyelmeztetés
A String.ToUpper sztringek konvertálásához és String.ToLower a metódusok nem használhatók a sztringek összehasonlítására vagy az egyenlőség ellenőrzésére. További információkért lásd a vegyes esetszakasz sztringjeinek összehasonlítását.
Vegyes eset sztringjeinek összehasonlítása
Ha össze szeretné hasonlítani a vegyes eset sztringjeinek sorrendjét, hívja meg a String.CompareTo metódus egyik túlterhelését egy comparisonType
paraméterrel, és adjon meg egy értéket , StringComparison.CurrentCultureIgnoreCaseStringComparison.InvariantCultureIgnoreCasevagy StringComparison.OrdinalIgnoreCase az comparisonType
argumentumot. A jelenlegi kultúrától eltérő adott kultúrát használó összehasonlításhoz hívja meg a String.CompareTo metódus túlterhelését az a culture
és options
paraméterrel együtt, és adjon meg argumentumként options
értéketCompareOptions.IgnoreCase.
A vegyes eset sztringjeinek összehasonlításához hívja meg a metódus egyik túlterhelését String.Equals egy comparisonType
paraméterrel, és adjon meg egy értéket , StringComparison.CurrentCultureIgnoreCaseStringComparison.InvariantCultureIgnoreCasevagy StringComparison.OrdinalIgnoreCase az comparisonType
argumentumot.
További információkért tekintse meg a sztringek használatának ajánlott eljárásait.
ToUpper
Módszer
A String.ToUpper metódus nagybetűsre módosítja a sztring összes karakterét. Az alábbi példa a ""Helló világ!" alkalmazás!" sztringet konvertálja a vegyes esetből nagybetűssé.
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!
Az előző példa alapértelmezés szerint kulturális szempontból érzékeny; a jelenlegi kultúra casing konvencióit alkalmazza. A kultúra szempontjából nem érzéketlen esetek módosításához vagy egy adott kultúra burkolati konvencióinak alkalmazásához használja a String.ToUpper(CultureInfo) metódus túlterhelését, és adjon meg egy értéket CultureInfo.InvariantCulture vagy egy System.Globalization.CultureInfo objektumot, amely a megadott kultúrát jelöli a culture
paraméternek. Egy példa, amely bemutatja, hogyan használhatja a metódust egy ToUpper kulturális érzéketlen eset módosítására, olvassa el a Kultúra érzéketlen esetmódosítások végrehajtása című témakört.
ToLower
Módszer
A String.ToLower metódus hasonló az előző metódushoz, de a sztring összes karakterét kisbetűssé alakítja. Az alábbi példa a ""Helló világ!" alkalmazás!" sztringet kisbetűssé alakítja.
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!
Az előző példa alapértelmezés szerint kulturális szempontból érzékeny; a jelenlegi kultúra casing konvencióit alkalmazza. A kultúra szempontjából nem érzéketlen esetek módosításához vagy egy adott kultúra burkolati konvencióinak alkalmazásához használja a String.ToLower(CultureInfo) metódus túlterhelését, és adjon meg egy értéket CultureInfo.InvariantCulture vagy egy System.Globalization.CultureInfo objektumot, amely a megadott kultúrát jelöli a culture
paraméternek. Egy példa, amely bemutatja, hogyan használhatja a metódust egy ToLower(CultureInfo) kulturális érzéketlen eset módosítására, olvassa el a Kultúra érzéketlen esetmódosítások végrehajtása című témakört.
ToTitleCase
Módszer
Az TextInfo.ToTitleCase egyes szavak első karakterét nagybetűssé, a többi karaktert pedig kisbetűvé alakítja. A teljes egészében nagybetűs szavak azonban mozaikszavak, és nem lesznek konvertálva.
A TextInfo.ToTitleCase módszer kultúraérzékeny, vagyis egy adott kultúra burkolati konvencióit használja. A metódus meghívásához először lekéri az TextInfo adott kultúra burkolati konvencióit képviselő objektumot egy CultureInfo.TextInfo adott kultúra tulajdonságából.
Az alábbi példa egy tömb minden sztringét átadja a TextInfo.ToTitleCase metódusnak. A sztringek megfelelő címsztringeket és betűszókat tartalmaznak. A sztringek címes esetté alakulnak az angol (Egyesült Államok) kultúra casing konvencióinak használatával.
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
Vegye figyelembe, hogy bár kulturális szempontból érzékeny, a TextInfo.ToTitleCase módszer nem biztosít nyelvileg helyes burkolatszabályokat. Az előző példában például a metódus "két város meséjét" alakítja át "A Tale Of Two Cities" (Két város meséje) értékké. Az usa-beli kultúra nyelvileg helyes címe azonban "A Tale of Two Cities" (Két város meséje).