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
- 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