String Comparison in Kotlin

1. Oversikt

I denne opplæringen vil vi diskutere forskjellige måter å sammenligne Strings i Kotlin.

2. Sammenligningsoperatører

La oss starte med operatøren “==”.

Vi kan bruke den til å sjekke om to strenger er strukturelt like. Det tilsvarer å bruke er lik metode i Java:

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

La oss nå vurdere referanselikhetsoperatøren “===”. Det kommer tilbake ekte hvis de to variablene peker på det samme objektet. Det tilsvarer å bruke == i Java.

Hver gang vi initialiserer en ny String objekt ved hjelp av anførselstegn, blir det automatisk plassert i strengbassenget. Derfor vil to like strenger opprettet på den måten alltid referere til det samme objektet:

assertTrue {første === sekund}

Imidlertid, hvis vi bruker en konstruktør til å lage en ny String, sier vi eksplisitt til Kotlin at vi vil ha et nytt objekt. Følgelig en ny String vil bli opprettet og lagt på dyngen:

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

3. Å sammenligne med er lik

De er lik metode returnerer det samme resultatet som “==” operatør:

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

Når vi vil gjøre en case-ufølsom sammenligning, kan vi bruke er lik metode og bestått ekte for den andre valgfrie parameteren ignorere tilfelle:

assertTrue {first.equals (firstCapitalized, true)}

4. Å sammenligne med sammenligne med

Kotlin har også en sammenligne med metode som vi kan bruke til å sammenligne rekkefølgen på de to strengene. Tilsvarende som er lik metoden, den sammenligne med metoden kommer også med en valgfri ignorere tilfelle argument:

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

De sammenligne med metoden returnerer null for like strenger, en positiv verdi hvis argumentets ASCII-verdi er mindre, og en negativ verdi hvis argumentets ASCII-verdi er større. På en måte, vi kan lese det som om vi leser subtraksjon.

I det siste eksemplet, på grunn av ignorere tilfelle argument, de to strengene regnes som like.

5. Konklusjon

I denne raske artikkelen så vi forskjellige måter å sammenligne strenger i Kotlin ved hjelp av noen grunnleggende eksempler.

Som alltid, sjekk ut all koden på GitHub.


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