先頭のゼロを揃えて、指定された長さの文字列に Int を変換するにはどうすればよいでしょうか? 質問する

先頭のゼロを揃えて、指定された長さの文字列に Int を変換するにはどうすればよいでしょうか? 質問する

Intを7 文字の長さに変換して にするStringにはどうすればよいでしょう123"0000123"?

ベストアンサー1

Javaライブラリはかなり良い(つまり素晴らしい)数値書式のサポートからアクセス可能文字列操作強化された文字列クラス:

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".Tested in 2.12.8 REPL になります。コメントで提案されているように文字列を置換する必要はありませんし、別のコメントで提案されているように の前に明示的にスペースを入れる必要もありません7
  • 長さが可変の場合、s"%${len}d".format("123")

おすすめ記事