こんにちは、さるまりんです。
長さ固定で数値の右側ゼロで埋めることをゼロパディング、この逆のゼロをとることをゼロサプレスといいます。
ゼロパディング
〇〇コードとかを作る際にやるやつです。今回はそれを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を取り除いています。
正規表現って奥が深くて面白いことがいろいろできます。
勉強しなきゃです。
読んでくださってありがとうございました。
ではまた!