Как преобразовать список <String>в строку с префиксом и постфиксом в kotlin - PullRequest
1 голос
/ 06 марта 2020

Как я могу преобразовать список чисел в строку, которую можно использовать в JSON, с Kotlin в Android?

Я мог использовать это, но это не работает:

l.toTypedArray().contentDeepToString()

ввод:

l: List<String> =[102,103]

вывод:

s:String = "["102","103"]"

Любая помощь будет оценена.

1 Ответ

3 голосов
/ 06 марта 2020

Вы можете использовать joinToString следующим образом:

fun main(args: Array<String>) {
    var l: List<String> = listOf("102" ,"103")
    return this.joinToString(prefix = "[\"", postfix = "\"]", separator = "\",\"")
}

Вывод выглядит так, как нужно:

["102","103"]

Для получения дополнительной информации прочитайте документацию joinToString.

У вас есть возможность сделать эту функцию расширения List<String>, чтобы уменьшить избыточность кода, если она требуется более одного раза в вашем коде:

// extend List<String> by a new method that creates your quoted String from the items
fun List<String>.toQuotedString(): String {
    return this.joinToString(prefix = "[\"", postfix = "\"]", separator = "\",\"")
}

fun main(args: Array<String>) {
    var l: List<String> = listOf("102" ,"103")
    println(l.toQuotedString())  // you can just use this method in your code
}

Добавление
Если вы хотите получить список действительных чисел (ваш и мой примеры используют List<String>), вы можете просто сделать то же самое для List<Int>:

fun List<Int>.toQuotedString(): String {
    return this.joinToString(prefix = "[\"", postfix = "\"]", separator = "\",\"")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...