LoginSignup
1
0

Kotlinでの文字列ゼロ埋めやスペース埋め

Last updated at Posted at 2024-04-03

はじめに

Kotlinでゼロ埋めをする話です。初めてやろうとしたときに意外と手間取ったので、昔のブログで記事にしました。

何人かの方に読んで頂けているようだったので、アップデートした版を改めてこちらでも書いてみます。

ちなみに今回実行してるKotlinの環境は1.9.23です。

Javaだとこう

numberの値を4桁までゼロ埋めする

String.format("%04d", number);

Kotlinだとこう

java.lang.String

ググって最初に見つけたのはこれ。
要はKotlinではなくJavaのStringを使えば、当然Javaの書き方でいけるよというものです。が、流石に毎回完全修飾名を書くのは微妙すぎます。

java.lang.String.format("%04d", number)

padStart

ちゃんと英語でkotlin zero paddingとか調べるとpadStartという最適なものが出てきます。

"12".padStart(4, '0')

ちゃんと4桁まで0埋めされる

0012

padEnd

後ろを埋めたかったらpadEndがある。

"12".padEnd(4, '0')
1200

スペース埋め

リファレンスに書いてある通りですが、padStartpadEndの第二引数はデフォルトがスペースなので、省略すればスペース埋めになります。

"12".padStart(4)
  12

必要なら拡張関数とか自作

「自分がやりたいのはゼロ埋めだけだから、毎回0を指定したくない」とかであれば、そういう関数を作ってしまってもいいかもしれないですね。

fun CharSequence.padZeroStart(length: Int): CharSequence = padStart(length, '0')

"12".padZeroStart(4)
0012

あとは数値からゼロ埋めの文字列を作ったりも。

fun Int.padZeroStart(length: Int): String = toString().padStart(length, '0')

12.padZeroStart(4)
0012

余談

久しぶりにKotlinのリファレンス見に行きましたけど、サンプルがWeb上でそのまま実行できるようになっていて驚きました。サクッと動かして試せて便利ですね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0