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.