Stringvergelijking in Kotlin

1. Overzicht

In deze tutorial bespreken we verschillende manieren om te vergelijken Draads in Kotlin.

2. Vergelijkingsoperatoren

Laten we beginnen met de operator "==".

We kunnen het gebruiken om te controleren of twee strings structureel gelijk zijn. Het is het equivalent van het gebruik van de is gelijk aan methode in Java:

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

Laten we nu eens kijken naar de operator voor referentiële gelijkheid "===". Het keert terug waar als de twee variabelen naar hetzelfde object verwijzen. Het is het equivalent van het gebruik van == in Java.

Elke keer dat we een nieuw Draad object met aanhalingstekens, wordt het automatisch in de stringpool geplaatst. Daarom zullen twee op die manier gemaakte gelijke strings altijd naar hetzelfde object verwijzen:

assertTrue {eerste === tweede}

Als we echter een constructor gebruiken om een ​​nieuw Draad, vertellen we Kotlin expliciet dat we een nieuw object willen. Bijgevolg een nieuwe Draad wordt gemaakt en op de hoop gezet:

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

3. Vergelijken met is gelijk aan

De is gelijk aan methode geeft hetzelfde resultaat terug als de “==” operator:

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

Als we een hoofdletterongevoelige vergelijking, kunnen we de is gelijk aan methode en slagen waar voor de tweede optionele parameter negeer zaak:

assertTrue {first.equals (firstCapitalized, true)}

4. Vergelijken met vergelijk met

Kotlin heeft ook een vergelijk met methode die we kunnen gebruiken om de volgorde van de twee strings te vergelijken. Evenzo als de is gelijk aan methode, de vergelijk met methode komt ook met een optioneel negeer zaak argument:

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

De vergelijk met methode retourneert nul voor gelijke tekenreeksen, een positieve waarde als de ASCII-waarde van het argument kleiner is, en een negatieve waarde als de ASCII-waarde van het argument groter is. Op een manier, we kunnen het lezen zoals we aftrekken lezen.

In het laatste voorbeeld vanwege de negeer zaak argument, de twee snaren worden als gelijk beschouwd.

5. Conclusie

In dit korte artikel hebben we verschillende manieren gezien om strings in Kotlin te vergelijken aan de hand van enkele basisvoorbeelden.

Bekijk zoals altijd alle code op GitHub.


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