Artikel ini membahas berbagai cara untuk mengonversi string yang dipisahkan koma menjadi daftar di Kotlin.
Cara standar untuk memisahkan string Kotlin adalah dengan menggunakan fungsi split(). Fungsi ini untuk mengonversi string yang dipisahkan koma menjadi daftar dengan cara berikut:
1. Menggunakan fungsi listOf()
Idenya adalah untuk membagi string dengan fungsi split() dan meneruskan array yang dihasilkan ke fungsi listOf() untuk mendapatkan daftar baru.
fun main() { val str = "A,B,C,D" val list: List<String> = listOf(*str.split(",").toTypedArray()) println(list) // [A, B, C, D] }
2. Menggunakan fungsi toList()
Solusi bagus lainnya adalah memanggil fungsi toList() secara langsung setelah memisahkan array dengan split().
fun main() { val str = "A,B,C,D" val list: List<String> = str.split(",").toList() println(list) // [A, B, C, D] }
3. Menggunakan fungsi Pattern.compile()
Terakhir, Anda dapat membagi string menggunakan fungsi split() di sekitar kecocokan suatu pola. Ini akan diterjemahkan ke dalam kode sederhana di bawah ini:
import java.util.regex.Pattern fun main() { val str = "A,B,C,D" val list: List<String> = Pattern.compile(",").split(str).toList() println(list) // [A, B, C, D] }
4. Menggunakan fungsi joinToString()
Fungsi jointostring() membantu kita mengonversi List atau Array Kotlin menjadi satu string. Kita dapat menentukan separator, prefix, postfix. Jika List dapat memiliki item string dalam jumlah besar, kami dapat memberikan nilai batas non-negatif, diikuti dengan string yang terpotong.
Ini adalah prototipe fungsi joinToString():
fun joinToString( separator: CharSequence = ", ", prefix: CharSequence = "", postfix: CharSequence = "", limit: Int = -1, truncated: CharSequence = "...", transform: ((Char) -> CharSequence)? = null ): String
Mari kita lihat beberapa contohnya
val chars = listOf('a', 'b', 'c', 'd', 'e') // [a, b, c, d, e] chars.joinToString() // a, b, c, d, e chars.joinToString(prefix = "{", postfix = "}") // {a, b, c, d, e} chars.joinToString(prefix = "{", postfix = "}", separator = "-") // {a-b-c-d-e} chars.joinToString(prefix = "{", postfix = "}", separator = "-") { it -> it.toUpperCase().toString() } // {A-B-C-D-E} val nums = arrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) nums.joinToString(limit = 5, truncated = "<...>") // 1, 2, 3, 4, 5, <...> nums.joinToString(limit = 5, truncated = "<...>") { it -> (it * 2).toString() } // 2, 4, 6, 8, 10, <...>
Selamat mencoba!