Learn through the super-clean Baeldung Pro experience:
>> Membership and Baeldung Pro.
No ads, dark-mode and 6 months free of IntelliJ Idea Ultimate to start with.
Last updated: March 26, 2025
While Java conversion methods are scattered across different classes and strategies, most of the conversions from String into the Scala data types are implemented in the StringOps class.
In this tutorial, we’ll explore how to convert some Scala data types to and from a String.
For this tutorial, we’ll be using the Scala REPL 2.13.0 for the code examples.
Converting between String and numeric types such as Int, Long, Double, and Float are similar because they use the StringOps class, which offers equivalent methods for the four types. Let’s have a look.
The first data type we’ll look at is Int.
Converting an Int to a String is handled using the toString method:
scala> val i: Int = 42
i: Int = 42
scala> i.toString
res0: String = 42
To convert between a String and an Int there are two options. First, we can use the toInt method:
scala> "42".toInt
res0: Int = 42
The toInt method will throw an Exception in case of an incorrect number format:
scala> "42a".toInt
java.lang.NumberFormatException: For input string: "42a"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at scala.collection.StringOps$.toInt$extension(StringOps.scala:889)
... 28 elided
Next is the toIntOption method, which will return a Some[Int] if the value is valid, or it will return a None in the case of an incorrect number format:
scala> "42".toIntOption
res1: Option[Int] = Some(42)
scala> "42a".toIntOption
res2: Option[Int] = None
As we said before, conversions between String and Long are very similar to what we did with Int in the previous section:
scala> val l: Long = 42
l: Long = 42
scala> l.toString
res0: String = 42
scala> "42".toLong
res1: Long = 42
scala> "42".toLongOption
res3: Option[Long] = Some(42)
If we were to attempt to run “42a”.toLong we would receive a NumberFormatException just like we had with Int.
Once again, the same methods apply to Double:
scala> val d: Double = 42
d: Double = 42.0
scala> d.toString
res0: String = 42.0
scala> "42".toDouble
res1: Double = 42.0
scala> "42".toDoubleOption
res2: Option[Double] = Some(42.0)
Once again, running “42a”.toDouble would throw a NumberFormatException just like in the previous examples.
Now the last numeric type, Float:
scala> val f: Float = 42
f: Float = 42.0
scala> f.toString
res0: String = 42.0
scala> "42".toFloat
res1: Float = 42.0
scala> "42".toFloatOption
res2: Option[Float] = Some(42.0)
Converting a String into a Boolean has the particularity that is case insensitive:
scala> val b: Boolean = true
b: Boolean = true
scala> b.toString
res0: String = true
scala> "true".toBoolean
res1: Boolean = true
scala> "true".toBooleanOption
res2: Option[Boolean] = Some(true)
scala> "true-x".toBoolean
java.lang.IllegalArgumentException: For input string: "true-x"
at scala.collection.StringOps$.toBooleanImpl$extension(StringOps.scala:943)
at scala.collection.StringOps$.toBoolean$extension(StringOps.scala)
... 28 elided
scala> "true-x".toBooleanOption
res3: Option[Boolean] = None
scala> "TrUe".toBoolean
res4: Boolean = true
Now let’s look at the CharArray data type. To convert a String into a CharArray, we rely once again on the StringOps methods:
scala> "string".toCharArray
res0: Array[Char] = Array(s, t, r, i, n, g)
To create a String from the CharArray, we’ll use the mkString method:
scala> Array('a','b','c').mkString
res0: String = abc
The conversion between String and ByteArray is not as easy as the previous examples.
To create a ByteArray from a String, we’ll use the getBytes method from StringOps:
scala> "baeldung".getBytes
res0: Array[Byte] = Array(98, 97, 101, 108, 100, 117, 110, 103)
However, to handle the reverse operation, we need an intermediary conversion between Byte and Char and then into a CharArray:
scala> (res0.map(_.toChar)).mkString
res1: String = baeldung
In this article, we looked at ways to convert between several Scala data types and String representations.