1. ホーム
  2. string

[解決済み] Int を、先頭のゼロを揃えて、指定された長さの文字列に変換するにはどうしたらいいですか?

2022-05-17 09:38:39

質問

の変換はどのように行うのですか? Int を 7 文字の長い String というように 123"0000123" ?

どのように解決するのですか?

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