Scala FAQ: Does Scala have a String variable substitution syntax like Ruby?
UPDATE: If you’re using Scala 2.10 or newer, see my new String interpolation in Scala 2.10 (embedding variables in strings) tutorial. If you're using Scala 2.9.x or older, continue with this article.
.
.
.
Unfortunately in Scala 2.9 you can’t use something like the #{}
syntax for substituting variables into strings like you can in Ruby, but you can use the format
method of the String class like this:
val out = "%s is %d years old".format(name, age)
That may be a little longer than typing something like this in Ruby:
# ruby val out = "#{name} is #{age} years old"
but it’s still pretty short, and also gives you the usual printf style formatting control that you’re used to in pretty much every open source language (C, C++, Java, etc.).
If you want to experiment with this String “variable substitution” syntax in Scala, here’s a little example class you can use for testing:
package devdaily object StringFormattingTests extends App { val name = "Leonard Nimoy" val age = 81 val out = "%s is %d years old".format(name, age) println(out) }
You can find more information about how this String substitution/formatting approach works in my earlier Scala String formatting tutorial.