Best Way to Convert ArrayList to String in Kotlin

2020-08-14 07:35发布

问题:

I have an ArrayList of String in kotlin

private val list = ArrayList<String>()

I want to convert it into String with a separator ",". I know we can do it programatically through loop but in other languages we have mapping functions available like in java we have

StringUtils.join(list);

And in Swift we have

array.joined(separator:",");

Is there any method available to convert ArrayList to String with a separator in Kotlin?

And what about for adding custom separator like "-" etc?

回答1:

Kotlin has joinToString method just for this

list.joinToString()

You can change a separator like this

list.joinToString(separator = ":")

If you want to customize it more, these are all parameters you can use in this function

val list = listOf("one", "two", "three", "four", "five")
println(
    list.joinToString(
        prefix = "[",
        separator = ":",
        postfix = "]",
        limit = 3,
        truncated = "...",
        transform = { it.toUpperCase() })
)

which outputs

[ONE:TWO:THREE:...]



回答2:

Kotlin as well has method for that, its called joinToString.

You can simply call it like this:

list.joinToString());

Because by default it uses comma as separator but you can also pass your own separator as parameter, this method takes quite a few parameters aside from separator, which allow to do a lot of formatting, like prefix, postfix and more.

You can read all about it here