如何将 Int
转换为 7 字符长的 String
,使 123
变成 "0000123"
?
最佳答案
Java 库非常好(如优秀)number formatting support可从 StringOps 访问丰富的字符串类:
scala> "%07d".format(123)
res5: String = 0000123
scala> "%07d".formatLocal(java.util.Locale.US, 123)
res6: String = 0000123
编辑 Scala 2.10 后:按照 fommil 的建议,从 2.10 开始,还有一个格式化字符串插值器(不支持本地化):
val expr = 123
f"$expr%07d"
f"${expr}%07d"
2019 年 4 月编辑:
- 如果您想要前导空格而不是零,只需从格式说明符中省略
0
。在上述情况下,它将是f"$expr%7d"
。在 2.12.8 REPL 中测试。无需按照评论中的建议进行字符串替换,甚至无需按照另一条评论中的建议在7
前面放置一个明确的空格。 - 如果长度可变,
s"%${len}d".format("123")
关于string - 如何将 Int 转换为给定长度的字符串,前导零对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8131291/