【Java】文字列を右側に0埋めする方法まとめ【初心者向けサンプル付き】

お疲れ様です。はるさらと申します。

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埋めを扱う際、つまずきやすい点もあります。

  1. 左側0埋めと混同する
    %03d などは左側に0を付ける指定であり、右側には対応していません。
    右埋めしたい場合は「空白埋め+置換」や
    StringUtils.rightPad を使う必要があります。
  2. 桁数の指定を間違える
    例えば String.format("%-5s", "123") の場合、
    全体で5桁になるように調整されます。
    想定よりも大きい桁数を指定すると、無駄に0が多くついてしまうので注意です。
  3. 数値と文字列の扱いの違い
    int num = 45; をそのまま0埋めすると「数値」としては保持できません。
    必ず文字列に変換してから処理する必要があります。

まとめ:状況に応じて使い分けよう

Javaで右側に0埋めする方法はいくつかありますが、
まずは String.format + replace の方法を押さえておくと安心です。
さらに実務では、固定長フォーマット商品コード生成など、
右側0埋めが必要になるケースが出てきます。

  • シンプルに書きたい → String.format + replace
  • 分かりやすさを重視 → StringBuilder
  • 外部ライブラリを使える → StringUtils.rightPad

といった使い分けを意識すると良いでしょう。
Javaを学び始めた方も、この記事のサンプルを
コピーして実行すればすぐに理解できるはずです。

どなたかのお役に立てば幸いです。
それではまたー!