Perbandingan String di Kotlin

1. Ikhtisar

Dalam tutorial ini, kita akan membahas berbagai cara membandingkan String di Kotlin.

2. Operator Pembanding

Mari kita mulai dengan operator “==”.

Kita dapat menggunakannya untuk memeriksa apakah dua string sama secara struktural. Ini setara dengan menggunakan metode sama dengan di Jawa :

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

Sekarang, mari pertimbangkan operator persamaan referensial “===”. Ini mengembalikan nilai true jika dua variabel menunjuk ke objek yang sama. Ini setara dengan menggunakan == di Java .

Setiap kali kita menginisialisasi objek String baru menggunakan tanda kutip, itu secara otomatis ditempatkan di kumpulan string. Oleh karena itu, dua string sama yang dibuat dengan cara itu akan selalu mereferensikan objek yang sama:

assertTrue { first === second }

Namun, jika kami menggunakan konstruktor untuk membuat String baru , kami secara eksplisit memberi tahu Kotlin bahwa kami menginginkan objek baru. Akibatnya, String baru akan dibuat dan diletakkan di heap:

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

3. Membandingkan dengan sederajat

The sama metode pengembalian hasil yang sama sebagai “==” Operator:

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

Ketika kita ingin melakukan perbandingan case-sensitive, kita dapat menggunakan metode equals dan meneruskan true untuk parameter opsional kedua ignoreCase :

assertTrue { first.equals(firstCapitalized, true) }

4. Membandingkan dengan CompareTo

Kotlin juga memiliki compareTo metode yang dapat kita gunakan untuk membandingkan urutan dua string. Sama seperti metode equals , metode bandingkanTo juga dilengkapi dengan argumen ignoreCase opsional :

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

The compareTo kembali metode nol untuk string yang sama, nilai positif jika nilai ASCII argumen adalah lebih kecil, dan nilai negatif jika nilai ASCII argumen ini lebih besar. Di satu sisi, kita bisa membacanya seperti membaca pengurangan.

Dalam contoh terakhir, karena argumen ignoreCase , kedua string dianggap sama .

5. Kesimpulan

Dalam artikel singkat ini, kami melihat berbagai cara membandingkan string di Kotlin menggunakan beberapa contoh dasar.

Seperti biasa, periksa semua kode di GitHub.