How to convert a Scala Array/List/Seq (sequence) to string with mkString

Scala collections FAQ: How can I convert a Scala Array to a String? (Or, more, accurately, how do I convert any Scala sequence to a String.)

Solution

A simple way to convert a Scala array to a String is with the mkString method of the Array class.

Tip: Although I've written "array", the same technique also works with any Scala sequence, including Array, List, Seq, ArrayBuffer, Vector, and other sequence types.

Here's a quick array to string example using the Scala REPL:

scala> val args = Array("Hello", "world", "it's", "me")
args: Array[java.lang.String] = Array(Hello, world, it's, me)

scala> val string = args.mkString(" ")
string: String = Hello world it's me

In this first statement:

val args = Array("Hello", "world", "it's", "me")

I create a Scala array named args, and in this second statement:

val string = args.mkString(" ")

I create a new String variable named string, separating each String in the array with a space character, which I specified when calling the mkString function.

Using other separator strings

Note that I could have given the mkString function any String to use as a separating character, like this:

scala> val string = args.mkString("\n")
string: String = 
Hello
world
it's
me

or like this:

scala> val string = args.mkString(" . ")
string: String = Hello . world . it's . me

Converting a Scala Int array to a String

As a final example, you can also use the Scala mkString method to convert an Int array to a String, like this:

scala> val numbers = Array(1,2,3)
numbers: Array[Int] = Array(1, 2, 3)

scala> val string = numbers.mkString(", ")
string: String = 1, 2, 3

In summary, I hope these Scala "Array to String" examples have been helpful.

Specifying a prefix, separator, and suffix with mkString

As one more note, when using mkString with a Scala array, list, seq, etc., you can also define a prefix, suffix, and element separator, as shown in these examples:

scala> val numbers = Array(1,2,3)
numbers: Array[Int] = Array(1, 2, 3)

scala> numbers.mkString("[", ",", "]")
res0: String = [1,2,3]
scala> numbers.mkString("(", ",", ")")
res1: String = (1,2,3)

Those examples show typical prefix, separator, and suffix values, but you can use any String you want for those three values.