string - 如何将 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")

https://stackoverflow.com/questions/8131291/

相关文章:

python - 轻松漂亮地打印花车?

c# - 在 C# 中的字符串中找到 {0} 是什么意思?

mysql - 如何在 MySQL 数据库中存储电话号码?

sql - 从 SQL Server 中的十进制中删除尾随零

r - 如何打印(到纸上)格式良好的数据框

c - 为什么 %d 代表整数?

java - 在 SimpleDateFormat 模式字符串中使用字母字符

java - netbeans 中的代码清理

java - 如何在 Java 中舍入整数除法并获得 int 结果?

objective-c - Objective-C 中的舍入数字