Javaでゼロパディングとゼロサプレス

こんにちは、さるまりんです。

長さ固定で数値の右側ゼロで埋めることをゼロパディング、この逆のゼロをとることをゼロサプレスといいます。

ゼロパディング

〇〇コードとかを作る際にやるやつです。今回はそれをJavaでやってみたいと思います。

String.format()メソッドを利用してできます。

String.format(書式文字列, 値)

String.format()は値を書式文字列で指定された形式の文字列に変換してくれます。

ゼロ埋めの文字列にするには"%0[桁数]d"を書式文字列としてします。

例えば6桁のゼロ埋め文字列にするには"%06d"とします。

int num = 1025;
String str = String.format("%06d", num);

上記のコードでは変数strは"001025"の文字列になります。

ゼロサプレス

こちらは逆です。前にあるゼロを取り除きます。月や日を二桁で表示、これを数値に変えたい時などにやりますね。例えば08月を8月にするような場合です。

こちらは正規表現を利用します。

例です。ゼロパディングで行った逆で、"001025""1025"に戻します。

String inStr = "001025";
Pattern p = Pattern.compile("^0+([0-9]+.*)");
Matcher m = p.matcher(inStr);
String outStr = null;
if (m.matches()) {
 outStr = m.group(1);
}

元の文字列から正規表現に一致する部分(かっこに囲まれている部分)を取り出すことで0を取り除いています。

正規表現って奥が深くて面白いことがいろいろできます。

勉強しなきゃです。

読んでくださってありがとうございました。

ではまた!