String Comparison in Kotlin

1. Oversigt

I denne vejledning diskuterer vi forskellige måder at sammenligne på Snors i Kotlin.

2. Sammenligningsoperatører

Lad os starte med operatøren “==”.

Vi kan bruge det til at kontrollere, om to strenge er strukturelt ens. Det svarer til at bruge lige med metode i Java:

val first = "kotlin" val second = "kotlin" val firstCapitalized = "KOTLIN" assertTrue {first == second} assertFalse {first == firstCapitalized}

Lad os nu overveje den refererende ligestillingsoperator “===”. Det vender tilbage rigtigt hvis de to variabler peger på det samme objekt. Det svarer til at bruge == i Java.

Hver gang vi initialiserer et nyt Snor objekt ved hjælp af anførselstegn, placeres det automatisk i strengpoolen. Derfor refererer to lige strenge oprettet på den måde altid til det samme objekt:

assertTrue {første === sekund}

Men hvis vi bruger en konstruktør til at oprette en ny Snor, fortæller vi eksplicit Kotlin, at vi vil have et nyt objekt. Derfor en ny Snor vil blive skabt og lagt på bunken:

val third = String ("kotlin" .toCharArray ()) assertTrue {first == third} assertFalse {first === third}

3. Sammenligning med lige med

Det lige med metode returnerer det samme resultat som “==” operatør:

assertTrue {first.equals (second)} assertFalse {first.equals (firstCapitalized)}

Når vi vil gøre en case-ufølsom sammenligning, kan vi bruge lige med metode og bestå rigtigt for den anden valgfri parameter ignorere sag:

assertTrue {first.equals (firstCapitalized, true)}

4. Sammenligning med sammenligne med

Kotlin har også en sammenligne med metode, som vi kan bruge til at sammenligne rækkefølgen af ​​de to strenge. Tilsvarende som lige med metode, den sammenligne med metoden leveres også med en valgfri ignorere sag argument:

assertTrue {first.compareTo (second) == 0} assertTrue {first.compareTo (firstCapitalized) == 32} assertTrue {firstCapitalized.compareTo (first) == -32} assertTrue {first.compareTo (firstCapitalized, true) == 0 }

Det sammenligne med metoden returnerer nul for lige strenge, en positiv værdi, hvis argumentets ASCII-værdi er mindre, og en negativ værdi, hvis argumentets ASCII-værdi er større. På en måde, vi kan læse det som om vi læser subtraktion.

I det sidste eksempel på grund af ignorere sag argument, de to strenge betragtes som lige.

5. Konklusion

I denne hurtige artikel så vi forskellige måder at sammenligne strenge i Kotlin ved hjælp af nogle grundlæggende eksempler.

Som altid, tjek al koden på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found