How do I format a string with string interpolation in Scala as a fixed width string?

myyk picture myyk · Mar 13, 2013 · Viewed 8.6k times · Source

I'm interfacing with a really old system and the file I need to generate needs a field that is a formed from a string but needs to be exactly 15 in width.

I want something like this:

val companyName = "FooBar, Inc" // 11 chars
f"$companyName%s"

To return:

"    FooBar, Inc"

Is there a slick way to do what I'm trying to do with the String interpolation?

Answer

Ron Dahlgren picture Ron Dahlgren · Mar 13, 2013

Use String.format with a format string. Surely something there will do what you want :-)

This code would do what you want:

scala> val companyName = "FooBar, Inc"
companyName: String = FooBar, Inc

scala> f"$companyName%15s"
res0: String = "    FooBar, Inc"