お疲れ様です。はるさらと申します。
Javaで数値や文字列を扱っていると、
「決まった桁数に揃えたい」という場面によく出くわします。
特にファイル出力や帳票、ID管理などでは「右側に0を埋めたい」
というケースも意外と多いです。
この記事では、Javaで文字列を右側に0埋めする方法について、
経験の浅い方でも実際に試せるサンプル付きで解説していきます。
また、これらの類似記事も参考になるかもしれません。
右側に0埋めするとは?
まずは基本的なイメージから確認しておきましょう。
"7"を 3桁に右側0埋め →"700""45"を 5桁に右側0埋め →"45000"
左側の0埋め(007 のような形式)はよく使われますが、
右側に0を足すケースも実務では登場します。
例えば「固定長ファイルの出力」や
「通貨の小数点以下を桁数で揃える」といった場面です。
左側に0埋めを行う方法はこちらにて紹介しています。
Javaで右側に0埋めする基本的な方法
Java標準ライブラリには「右側に0埋め」の専用メソッドはありません。
そのため、いくつかの方法を組み合わせて実現します。
サンプル1:文字列操作でシンプルに実装(基本例)
public class RightZeroPaddingExample1 {
public static void main(String[] args) {
String str = "45";
int length = 5;
String padded = String.format("%-" + length + "s", str).replace(' ', '0');
System.out.println(padded); // 出力: 45000
}
}
ここでは String.format を使って、左寄せで空白埋めした後に、
空白を0に置き換えています。
一番シンプルで理解しやすい方法です。
実務での利用例:固定長ファイルや商品コード
右側の0埋めは、業務システムの中で「固定長フォーマット」によく使われます。
サンプル2:固定長ファイルの出力(実務利用例)
public class RightZeroPaddingExample2 {
public static void main(String[] args) {
String productCode = "123";
String paddedCode = String.format("%-8s", productCode).replace(' ', '0');
System.out.println("商品コード: " + paddedCode);
// 出力: 商品コード: 12300000
}
}
このようにして出力した文字列をそのままファイルに書き込めば、
桁数を揃えたデータ出力が可能になります。
銀行データや基幹システムとのやり取りでは、
こうした「0埋めによる固定長フォーマット」が今でもよく使われています。
代替手法の比較:文字列結合やライブラリ利用
右側の0埋めは、他の方法でも実現できます。
それぞれの特徴を比較してみましょう。
サンプル3:StringBuilderで実装する方法
public class RightZeroPaddingExample3 {
public static void main(String[] args) {
String str = "7";
int length = 4;
StringBuilder sb = new StringBuilder(str);
while (sb.length() < length) {
sb.append('0');
}
System.out.println(sb.toString()); // 出力: 7000
}
}
ループ処理を使うので少し冗長ですが、
「右に0を足す」という処理が直感的に理解できるのが特徴です。
Javaを学び始めた方でも分かりやすい手法だと思います。
サンプル4:Apache Commons LangのStringUtils.rightPad
import org.apache.commons.lang3.StringUtils;
public class RightZeroPaddingExample4 {
public static void main(String[] args) {
String str = "45";
String padded = StringUtils.rightPad(str, 6, '0');
System.out.println(padded); // 出力: 450000
}
}
外部ライブラリですが、StringUtils.rightPad を使えば一発で実現できます。
プロジェクトにCommons Langが導入されているなら、
この方法が最も簡潔に書けます。
経験の浅い方が間違えやすいポイント
右側の0埋めを扱う際、つまずきやすい点もあります。
- 左側0埋めと混同する
%03dなどは左側に0を付ける指定であり、右側には対応していません。
右埋めしたい場合は「空白埋め+置換」や
StringUtils.rightPadを使う必要があります。 - 桁数の指定を間違える
例えばString.format("%-5s", "123")の場合、
全体で5桁になるように調整されます。
想定よりも大きい桁数を指定すると、無駄に0が多くついてしまうので注意です。 - 数値と文字列の扱いの違い
int num = 45;をそのまま0埋めすると「数値」としては保持できません。
必ず文字列に変換してから処理する必要があります。
まとめ:状況に応じて使い分けよう
Javaで右側に0埋めする方法はいくつかありますが、
まずは String.format + replace の方法を押さえておくと安心です。
さらに実務では、固定長フォーマットや商品コード生成など、
右側0埋めが必要になるケースが出てきます。
- シンプルに書きたい →
String.format+replace - 分かりやすさを重視 →
StringBuilder - 外部ライブラリを使える →
StringUtils.rightPad
といった使い分けを意識すると良いでしょう。
Javaを学び始めた方も、この記事のサンプルを
コピーして実行すればすぐに理解できるはずです。
どなたかのお役に立てば幸いです。
それではまたー!



































