【Java】String.formatで0埋めする方法まとめ|初心者向けサンプル付き解説

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

Javaで数値や文字列を扱うときに
「桁数をそろえたい」「足りない部分を0で埋めたい」と思ったことはありませんか?
そんなときに便利なのが String.format を使った0埋め です。

この記事では、Java初心者の方にもわかりやすいように、
実際のサンプルコードを交えながら
0埋めの基本・実務利用例・代替手法の比較 を解説していきます。

また、これらの記事も参考になるかもしれません!


String.formatで0埋めが必要になる場面とは?

プログラムを書いていると、次のようなシーンで0埋めが役立ちます。

  • 日付や時刻を表すとき(例: 2025-09-07 のように「09月」と2桁表記にしたい)
  • 連番の管理(例: 0001, 0002 といった社員番号や商品コード)
  • 数値の桁をそろえて見やすくする(例: 1, 23, 456001, 023, 456 に統一)

プログラミング初心者の方はまず「見た目をそろえるために使う」
覚えておくと理解しやすいです。


String.formatを使った0埋めの基本例

最初に、シンプルなサンプルコードを紹介します。

public class ZeroPaddingExample {
    public static void main(String[] args) {
        int num1 = 5;
        int num2 = 12;
        
        // 3桁にそろえて0埋め
        String result1 = String.format("%03d", num1);
        String result2 = String.format("%03d", num2);

        System.out.println(result1); // 出力: 005
        System.out.println(result2); // 出力: 012
    }
}

ここでのポイントは %03d という書き方です。

  • %d → 整数を表す
  • 3 → 桁数を指定(最低3桁)
  • 0 → 足りない部分を0で埋める

初心者の方は 「%0桁数d」で整数を0埋めできる と覚えておきましょう。


実務でよくある0埋めの利用例

では、実際の開発でよく出てくるケースを見てみます。

1. 連番を管理するとき

社員番号や注文番号などを自動で発番するときに便利です。

public class EmployeeIdExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            String empId = String.format("EMP%04d", i);
            System.out.println(empId);
        }
    }
}

出力結果:

EMP0001
EMP0002
EMP0003
EMP0004
EMP0005

ここでは %04d を使って4桁に統一しています。
「EMP」という接頭辞をつけるだけで、それらしい社員番号になりますね。


2. 日付や時刻の整形

日付の「月」や「日」を0埋めするときにも使えます。

import java.time.LocalDate;

public class DateFormatExample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.of(2025, 9, 7);
        
        String formattedDate = String.format("%04d-%02d-%02d",
                today.getYear(), today.getMonthValue(), today.getDayOfMonth());
        
        System.out.println(formattedDate); // 出力: 2025-09-07
    }
}

ここでは年は4桁、月と日は2桁にそろえています。
JavaのDateTimeFormatterを使う方法もありますが、
簡単な0埋めならString.formatでも十分です。


代替手法との比較(初心者が混乱しやすいポイント)

実は、Javaでは0埋めをする方法はString.formatだけではありません。
よく使われる代替手法を2つ紹介します。

1. DecimalFormatを使う

import java.text.DecimalFormat;

public class DecimalFormatExample {
    public static void main(String[] args) {
        DecimalFormat df = new DecimalFormat("0000");
        System.out.println(df.format(5));    // 出力: 0005
        System.out.println(df.format(123));  // 出力: 0123
    }
}

DecimalFormatは柔軟ですが、数値専用のクラスです。
「文字列と組み合わせたい」場合はString.formatの方が便利です。


2. Stringクラスのformat以外の手法(左パディング)

Java 11以降ではString#repeatを使って自作する方法もあります。

public class RepeatExample {
    public static void main(String[] args) {
        int num = 7;
        String result = String.format("%03d", num);
        
        // String#repeatで実装する例
        String manual = String.valueOf(num);
        manual = "0".repeat(3 - manual.length()) + manual;
        
        System.out.println(result); // 出力: 007
        System.out.println(manual); // 出力: 007
    }
}

こちらは学習目的で試すには良いですが、
実務ではString.formatの方がシンプルでおすすめです。


初心者がつまずきやすい注意点

String.formatで0埋めするときに、
初心者がよく間違えるポイントをまとめます。

  1. 桁数指定を忘れる
    • %d だけでは0埋めされません。必ず %0桁数d と書く必要があります。
  2. 文字列には直接使えない
    • %s では0埋めされません。0埋めしたいなら整数に変換するか、自前で工夫が必要です。
  3. 負の数の扱い
    • -5%03d とすると -05 になります。
    • マイナス記号を含めて桁数が計算されることを覚えておきましょう。

まとめ|Javaの0埋めはString.formatでシンプルに

この記事では、Javaで文字列を0埋めする方法について紹介しました。

  • 基本は String.format("%0桁数d", 数値) を使えばOK
  • 実務では 社員番号や日付の整形 でよく使う
  • 代替手法として DecimalFormatやString#repeat もある
  • 初心者が間違いやすいポイント(桁数指定忘れ、文字列への誤用、負数の扱い)に注意

まずはシンプルにString.formatから使い始めるのがおすすめです。

「桁をそろえる」だけで、プログラムの出力がぐっと見やすくなります。
ぜひ試してみてください!

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