Issue
How can I convert an Int
to a 7-character long String
, so that 123
is turned into "0000123"
?
Solution
The Java library has pretty good (as in excellent) number formatting support which is accessible from StringOps enriched String class:
scala> "%07d".format(123)
res5: String = 0000123
scala> "%07d".formatLocal(java.util.Locale.US, 123)
res6: String = 0000123
Edit post Scala 2.10: as suggested by fommil, from 2.10 on, there is also a formatting string interpolator (does not support localisation):
val expr = 123
f"$expr%07d"
f"${expr}%07d"
Edit Apr 2019:
- If you want leading spaces, and not zero, just leave out the
0
from the format specifier. In the above case, it'd bef"$expr%7d"
.Tested in 2.12.8 REPL. No need to do the string replacement as suggested in a comment, or even put an explicit space in front of7
as suggested in another comment. - If the length is variable,
s"%${len}d".format("123")
Answered By - huynhjl Answer Checked By - Candace Johnson (PHPFixing Volunteer)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.