Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A .NET számos módszert kínál a sztringek értékeinek összehasonlítására. Az alábbi táblázat felsorolja és ismerteti az érték-összehasonlító módszereket.
Függvény neve | Használd |
---|---|
String.Compare | Két sztring értékeit hasonlítja össze. Egész számot ad vissza. |
String.CompareOrdinal | Két sztringet hasonlít össze a helyi kultúrától függetlenül. Egész számot ad vissza. |
String.CompareTo | Összehasonlítja az aktuális sztringobjektumot egy másik sztringgel. Egész számot ad vissza. |
String.StartsWith | Meghatározza, hogy egy sztring az átadott sztringgel kezdődik-e. Logikai értéket ad vissza. |
String.EndsWith | Meghatározza, hogy egy szöveg az átadott szöveggel végződik-e. Logikai értéket ad vissza. |
String.Contains | Meghatározza, hogy egy karakter vagy sztring egy másik sztringben fordul-e elő. Logikai értéket ad vissza. |
String.Equals | Meghatározza, hogy két szöveg azonos-e. Logikai értéket ad vissza. |
String.IndexOf | Egy karakter vagy sztring indexpozícióját adja vissza a vizsgált sztring elejétől kezdve. Egész számot ad vissza. |
String.LastIndexOf | Egy karakter vagy sztring indexpozícióját adja vissza a vizsgált sztring végétől kezdve. Egész számot ad vissza. |
Compare
módszer
A statikus String.Compare módszer alapos módszert biztosít két sztring összehasonlítására. Ez a módszer kulturálisan érzékeny. Ez a függvény két sztring vagy két sztring részsztringjének összehasonlítására használható. Emellett túlterhelést is biztosítanak, amelyek figyelembe veszik vagy figyelmen kívül hagyják az esetet és a kulturális eltérést. Az alábbi táblázat azt a három egész számot mutatja be, amelyeket ez a metódus visszaadhat.
Visszaadott érték | Állapot |
---|---|
Negatív egész szám | Az első sztring a rendezési sorrend második sztringje előtt található. -vagy- Az első karaktersorozat az null . |
0 | Az első és a második karakterlánc egyenlő. -vagy- Mindkét karakterlánc null . |
Pozitív egész szám -vagy- 1 |
Az első karakterlánc a második karakterláncot követi a rendezési sorrendben. -vagy- A második karakterlánc az null . |
Fontos
A String.Compare metódus elsősorban sztringek rendeléséhez vagy rendezéséhez használható. Ne használja az String.Compare módszert egyenlőség tesztelésére (azaz kizárólag egy 0-s visszatérési érték keresésére, függetlenül attól, hogy az egyik sztring kisebb vagy nagyobb, mint a másik). Ehelyett, annak meghatározásához, hogy két karaktersor egyenlő-e, használja a String.Equals(String, String, StringComparison) metódust.
Az alábbi példa két sztring relatív értékeinek meghatározására használja a String.Compare metódust.
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
Ez a példa a konzolon jelenik meg -1
.
Az előző példa alapértelmezés szerint kulturális szempontból érzékeny. A kultúra szempontjából érzéketlen sztringek összehasonlításához használja a String.Compare metódus túlterhelését, amely lehetővé teszi a használni kívánt kultúra megadását egy kultúra paraméter megadásával. Egy példa, amely bemutatja, hogyan használható a String.Compare metódus kultúrafüggetlen összehasonlítások végrehajtására, az alábbiakban található: Kultúrafüggetlen sztringek összehasonlítása.
CompareOrdinal
módszer
A String.CompareOrdinal metódus két sztringobjektumot hasonlít össze a helyi kultúra figyelembe vétele nélkül. A metódus visszatérési értékei megegyeznek az előző táblázatban szereplő metódus által Compare
visszaadott értékekkel.
Fontos
A String.CompareOrdinal metódus elsősorban sztringek rendeléséhez vagy rendezéséhez használható. Ne használja az String.CompareOrdinal módszert egyenlőség tesztelésére (azaz kizárólag egy 0-s visszatérési érték keresésére, függetlenül attól, hogy az egyik sztring kisebb vagy nagyobb, mint a másik). Ehelyett, annak meghatározásához, hogy két karaktersor egyenlő-e, használja a String.Equals(String, String, StringComparison) metódust.
Az alábbi példa két CompareOrdinal
sztring értékeinek összehasonlítására használja a metódust.
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
Ez a példa a konzolon jelenik meg -32
.
CompareTo
módszer
A String.CompareTo metódus összehasonlítja azt a sztringet, amelyet az aktuális sztringobjektum beágyaz egy másik sztringhez vagy objektumhoz. A metódus visszatérési értékei megegyeznek az előző táblázatban szereplő metódus által String.Compare visszaadott értékekkel.
Fontos
A String.CompareTo metódus elsősorban sztringek rendeléséhez vagy rendezéséhez használható. Ne használja az String.CompareTo módszert egyenlőség tesztelésére (azaz kizárólag egy 0-s visszatérési érték keresésére, függetlenül attól, hogy az egyik sztring kisebb vagy nagyobb, mint a másik). Ehelyett, annak meghatározásához, hogy két karaktersor egyenlő-e, használja a String.Equals(String, String, StringComparison) metódust.
Az alábbi példa a String.CompareTo metódus használatával hasonlítja össze az string1
objektumot az string2
objektummal.
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
Ez a példa a konzolon jelenik meg -1
.
A String.CompareTo metódus minden túlterhelése alapértelmezés szerint kultúra- és nagybetű-érzékeny összehasonlításokat végez. Ennek a módszernek nincs túlterhelése, amely lehetővé teszi a kultúra érzéketlen összehasonlítását. A kód érthetősége érdekében azt javasoljuk, hogy inkább a String.Compare
metódust használja, és adja meg a CultureInfo.CurrentCulture a kultúraérzékeny műveletekhez vagy a CultureInfo.InvariantCulture a kultúrafüggetlen műveletekhez. A String.Compare
metódus használatával végrehajtható kultúraérzékeny és kultúrafüggetlen összehasonlítások példáiért lásd: Culture-Insensitive sztring-összehasonlítások végrehajtása.
Equals
módszer
A String.Equals metódus könnyen megállapíthatja, hogy két sztring azonos-e. Ez a kis- és nagybetűket megkülönböztető metódus egy true
vagy false
logikai értéket ad vissza. Egy meglévő osztályból is használható, ahogy a következő példában is látható. Az alábbi példa a Equals
metódus használatával határozza meg, hogy egy sztringobjektum tartalmazza-e a "Hello World" kifejezést.
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
Ez a példa a konzolon jelenik meg True
.
Ez a módszer statikus módszerként is használható. Az alábbi példa két sztringobjektumot hasonlít össze statikus módszerrel.
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
Ez a példa a konzolon jelenik meg True
.
StartsWith
és EndsWith
metódusok
Ezzel a String.StartsWith módszerrel megállapíthatja, hogy egy sztringobjektum ugyanazokkal a karakterekkel kezdődik-e, amelyek egy másik sztringet is magukban foglalnak. Ez a kis- és nagybetűket különböztető módszer `true
` értéket ad vissza, ha az aktuális sztringobjektum az átvett sztringgel kezdődik, és `false
` értéket ad vissza, ha nem. Az alábbi példa ezzel a módszerrel állapítja meg, hogy egy sztringobjektum a "Hello" karakterrel kezdődik-e.
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
Ez a példa a konzolon jelenik meg True
.
A String.EndsWith metódus összehasonlít egy átadott sztringet az aktuális sztringobjektum végén található karakterekkel. Logikai értéket is ad vissza. Az alábbi példa egy sztring végét ellenőrzi a EndsWith
metódus használatával.
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
Ez a példa a konzolon jelenik meg False
.
IndexOf
és LastIndexOf
metódusok
A metódussal String.IndexOf meghatározhatja egy adott karakter első előfordulásának helyét egy sztringen belül. Ez a kis- és nagybetűket megkülönböztető metódus egy sztring elejéről kezd számlálni, és nulla alapú index használatával visszaadja egy átadott karakter pozícióját. Ha a karakter nem található, a rendszer egy –1 értéket ad vissza.
Az alábbi példa a metódust használja a IndexOf
"l
" karakter első előfordulásának keresésére egy sztringben.
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
Ez a példa a konzolon jelenik meg 2
.
A String.LastIndexOf metódus hasonló a String.IndexOf
metódushoz, azzal a kivételével, hogy egy adott karakter utolsó előfordulásának helyét adja vissza egy sztringen belül. Különbséget tesz a kis- és nagybetűk között, és nulláról induló indexelést használ.
Az alábbi példa a metódust használja a LastIndexOf
sztringben található "l
" karakter utolsó előfordulásának keresésére.
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
Ez a példa a konzolon jelenik meg 9
.
Mindkét módszer akkor hasznos, ha a String.Remove metódussal együtt használják. A karakter pozíciójának lekéréséhez használhatja akár a IndexOf
, akár a LastIndexOf
metódusokat, majd ezt a pozíciót megadhatja a Remove
metódusnak, hogy eltávolítson egy karaktert vagy egy olyan szót, amely ezzel a karakterrel kezdődik.
Lásd még
- Ajánlott eljárások sztringek használatához a .NET-ben
- Alapszintű sztringműveletek
- Kultúrafüggetlen sztringműveletek végrehajtása
- Súlytáblák rendezése – a .NET-keretrendszer és a .NET Core 1.0-3.1 használata Windows rendszeren
- Alapértelmezett Unicode rendezési elemtáblázat – amelyet a .NET 5 minden platformon használ, valamint a .NET Core Linuxon és macOS rendszeren