Asad Ali Choudhry
Asad Ali Choudhry

Reputation: 5261

Best Way to Convert ArrayList to String in Kotlin

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?

Upvotes: 64

Views: 62970

Answers (3)

Jeevan Rupacha
Jeevan Rupacha

Reputation: 5806

In kotlin there is reduce function and it is same as in javascript . This function iterates all the list value and adds to previous value .

val listVal: List<String> = listOf("a","b","c","d")
val stringVal = listVal.reduce{ acc, s -> 
                "$acc : ${s.uppercase()}"
} 

Upvotes: 0

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.uppercase() }
    )
)

which outputs

[ONE:TWO:THREE:...]

Upvotes: 163

FilipRistic
FilipRistic

Reputation: 2821

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

Upvotes: 12

Related Questions