Porovnanie reťazcov v Kotline

1. Prehľad

V tomto tutoriáli si rozoberieme rôzne spôsoby porovnávania Strings v Kotline.

2. Porovnávacie operátory

Začnime operátorom „==“.

Pomocou neho môžeme skontrolovať, či sú dva reťazce štrukturálne rovnaké. Je to ekvivalent použitia súboru rovná sa metóda v Jave:

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

Teraz uvažujme operátor referenčnej rovnosti „===“. Vracia sa to pravda ak dve premenné smerujú k rovnakému objektu. Je to ekvivalent použitia == v Jave.

Kedykoľvek inicializujeme nové String objekt pomocou úvodzoviek, automaticky sa umiestni do fondu reťazcov. Preto dva rovnaké reťazce vytvorené týmto spôsobom budú vždy odkazovať na rovnaký objekt:

assertTrue {prvý === druhý}

Ak však na vytvorenie nového použijeme konštruktor String, výslovne hovoríme Kotlinovi, že chceme nový objekt. V dôsledku toho nový String sa vytvorí a umiestni na haldu:

val third = String ("kotlin" .toCharArray ()) assertTrue {prvý == tretí} assertFalse {prvý === tretí}

3. Porovnávanie s rovná sa

The rovná sa metóda vráti rovnaký výsledok ako “==” operátor:

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

Keď chceme urobiť a porovnanie bez rozlišovania malých a veľkých písmen, môžeme použiť rovná sa metóda a vyhovieť pravda pre druhý voliteľný parameter ignoreCase:

assertTrue {first.equals (firstCapitalized, true)}

4. Porovnávanie s porovnať s

Kotlin má tiež a porovnať s metóda, ktorú môžeme použiť na porovnanie poradia dvoch reťazcov. Podobne ako rovná sa metóda, porovnať s metóda prichádza aj s voliteľným ignoreCase argument:

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

The porovnať s metóda vráti nulu pre rovnaké reťazce, kladnú hodnotu, ak je hodnota ASCII argumentu menšia, a zápornú hodnotu, ak je hodnota ASCII argumentu väčšia. Svojím spôsobom, môžeme to čítať, akoby sme čítali odčítanie.

V poslednom príklade z dôvodu ignoreCase argument, dva reťazce sa považujú za rovnaké.

5. Záver

V tomto rýchlom článku sme videli rôzne spôsoby porovnania reťazcov v Kotline pomocou niekoľkých základných príkladov.

Ako vždy, prosím, skontrolujte celý kód na GitHub.


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