0Pricing
Java Academy · レッスン

表を整列させる

データの列を整形します。

「表を整列させる」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全4レッスンが含まれています。

配置が重要な理由

データの行を出力するとき、列が不揃いだと読みにくくなります。列を揃えると、数値とラベルをきれいに上下で揃えられます。

printf の幅とフラグを使えば、コンソール上で整った表を作成できます。

デフォルトは右揃え

%10s のように幅を指定すると10文字分を確保し、左側を埋めるため、テキストは右揃えになります。

数値も同じように扱われるため、数値の列は右端で揃います。

public class Main {
    public static void main(String[] args) {
        System.out.printf("[%10s]\n", "hi");
    }
}

マイナス記号で左揃え

- フラグを追加すると、フィールド内で左揃えにできます。%-10s はテキストを左側に置き、右側を埋めます。

左揃えはラベルや名前に適しています。

public class Main {
    public static void main(String[] args) {
        System.out.printf("[%-10s]\n", "hi");
    }
}

2つの列

左揃えのラベルと右揃えの数値を組み合わせて、1行を作成します。%-10s%5d により、名前に10文字分、数値に5文字分の幅を指定します。

すべての行で同じ書式を繰り返すと、列が揃います。

public class Main {
    public static void main(String[] args) {
        System.out.printf("%-10s%5d\n", "Apples", 3);
        System.out.printf("%-10s%5d\n", "Pears", 12);
    }
}

簡単な表

見出しと各データ行に同じ書式文字列を使うと、全体の配置を維持できます。

ここでは3行で1つのパターンを共有しているため、列が整った状態に保たれます。

public class Main {
    public static void main(String[] args) {
        String fmt = "%-8s%6d\n";
        System.out.printf(fmt, "Name", 0);
        System.out.printf(fmt, "Ann", 90);
        System.out.printf(fmt, "Bob", 7);
    }
}

小数の配置

金額や測定値では、幅と精度を組み合わせます。%8.2f は、小数点以下2桁の数値を8文字分の幅で右揃えにします。

行をまたいで小数点が縦に揃います。

public class Main {
    public static void main(String[] args) {
        System.out.printf("%8.2f\n", 5.5);
        System.out.printf("%8.2f\n", 123.4);
    }
}

ヘッダーと数値

1行の中で文字列列と数値列を組み合わせます。左寄せのラベルと右寄せの価格は、自然な組み合わせになります。

このパターンは、ほとんどのコンソールレポートの基本です。

public class Main {
    public static void main(String[] args) {
        System.out.printf("%-10s%8.2f\n", "Coffee", 3.5);
        System.out.printf("%-10s%8.2f\n", "Cake", 12.0);
    }
}

列幅の選択

最も長い値以上の幅を選んでください。そうしないと、テキストが列からはみ出して整列が崩れます。

値がフィールドより広い場合、printf は値全体を出力し、指定された幅を無視します。

public class Main {
    public static void main(String[] args) {
        System.out.printf("[%3s]\n", "toolong");
    }
}

行のループ処理

ループと共有する1つの書式文字列を組み合わせると、表全体を簡単に生成できます。

ループが1回進むごとに整列された1行が出力されるため、データを追加してもレイアウトが崩れません。

public class Main {
    public static void main(String[] args) {
        String[] names = {"Sun", "Mon", "Tue"};
        int[] hrs = {8, 12, 5};
        for (int i = 0; i < names.length; i++) {
            System.out.printf("%-6s%4d\n", names[i], hrs[i]);
        }
    }
}

String.format との組み合わせ

出力前にテキストが必要な場合は、String.format を使って整列された各行を作成できます。

幅と整列に関するルールは同じです。

public class Main {
    public static void main(String[] args) {
        String row = String.format("%-8s%5d", "Total", 99);
        System.out.println(row);
    }
}

タブと幅

\t タブで列を区切ることもできますが、タブストップは環境によって異なり、長い値があると整列が崩れます。

%-10s のような固定幅なら、信頼性の高い予測可能な列にできるため、表にはこちらを使用してください。

理解度チェック

名前を12文字分の幅で左寄せする書式はどれでしょうか。

まとめ

幅フィールド、左寄せを指定する - フラグ、整った小数列を作る %8.2f を使って、整列された表を作成しました。

printf、String.format、整列を使えば、あらゆるコンソール出力をきれいに整形できます。

よくある質問

「表を整列させる」レッスンは無料ですか?

はい。「表を整列させる」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全4レッスンが含まれています。

「表を整列させる」で何を学びますか?

データの列を整形します。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Java Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「表を整列させる」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJava Academyレッスンでコードを書いて実行できますか?

はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. printfの基本
  2. 数値と小数の書式
  3. String.format
  4. 表を整列させる
← Java Academyに戻る