string - 如何将 Int 转换为给定长度的字符串,前导零对齐?

标签 string scala formatting int

如何将 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/

相关文章:

ruby - 将字符串拆分为哈希?

c++ - 错误 C2026 : string too big, 尾随字符被截断

scala - Spark DataFrame orderBy 和 DataFrameWriter sortBy,有区别吗?

Scala 的反射 API

Python:日期时间格式

c++ - 向字符串中添加一个字符

java - 按字母顺序排序后,如何获取列表中最重复值的计数?

scala - 传递类型参数以用作参数 LabelledGeneric

c# - 大写的UTF-8?

ios - 无法使 iOS 设备的条件 CSS 正常工作