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.