C#でプログラミングを行っていると、コンソール画面やログファイルに出力するテキストの見た目を整えたい場面が多々あります。
特に、項目名と値を並べて表示する際、文字数が異なると表示がガタガタになり、可読性が著しく低下してしまいます。
そんな時に便利なのがPadRightメソッドです。
このメソッドを使えば、文字列の右側に空白や特定の文字を付け足して、指定した長さに簡単に揃えることができます。
本記事では、PadRightの基本的な使い方から、実戦で役立つ応用テクニックまで詳しく解説します。
PadRightメソッドとは
C#のstring.PadRightメソッドは、文字列の右側に特定の文字を埋めて、指定した合計の長さに調整した新しい文字列を返すための機能です。
主にデータの整形や、表形式のテキスト出力などで、各行の幅を一定に保つために利用されます。

PadRightの基本的な仕組み
PadRightメソッドは、元の文字列そのものを書き換えるのではなく、新しく整形された文字列を生成して返すという点に注意が必要です。
C#において文字列(string)は不変(immutable)であるため、メソッドを呼び出しただけでは元の変数の値は変わりません。
このメソッドには主に2つのオーバーロードが存在します。
PadRight(int totalWidth):指定した長さになるまで右側に半角空白を埋める。PadRight(int totalWidth, char paddingChar):指定した長さになるまで右側に任意の文字を埋める。
引数のtotalWidthは、「追加する文字数」ではなく「最終的な文字列全体の長さ」を指定します。
例えば、5文字の文字列に対してPadRight(8)を実行すると、右側に3文字分の空白が追加されます。
基本的な使い方:空白で右側を埋める
まずは、最も一般的な「空白で右側を埋める」方法を見ていきましょう。
この方法は、コンソール出力で項目を左揃えにする際に非常に役立ちます。

サンプルコードと実行結果
以下のコードでは、異なる長さの文字列をPadRightを使って同じ長さに揃えています。
using System;
public class Program
{
public static void Main()
{
string item1 = "Apple";
string item2 = "Banana";
string item3 = "Strawberry";
// 全体の長さを15文字に揃えて、右側に空白を挿入
// 左揃えのリストを作成する場合に便利
Console.WriteLine(item1.PadRight(15) + ": 100円");
Console.WriteLine(item2.PadRight(15) + ": 150円");
Console.WriteLine(item3.PadRight(15) + ": 300円");
}
}
Apple : 100円
Banana : 150円
Strawberry : 300円
この例では、各果物の名前に対してPadRight(15)を適用しています。
- 「Apple」は5文字なので、右側に10個の空白が追加されます。
- 「Strawberry」は10文字なので、右側に5個の空白が追加されます。
結果として、コロン(:)の位置が垂直に綺麗に揃い、非常に読みやすいリストになります。
応用:任意の文字で埋める方法
PadRightの第2引数にchar型の文字を指定することで、空白以外の文字で埋めることも可能です。
これは、目次(ドットで繋ぐ形式)や、特定のフォーマットに従ったデータ作成などで利用されます。

任意の文字を使用するサンプルコード
using System;
public class Program
{
public static void Main()
{
string title = "Introduction";
string page = "p.1";
// ドット('.')で20文字分埋める
// 最後にページ番号を連結する
string line = title.PadRight(20, '.') + page;
Console.WriteLine(line);
Console.WriteLine("Chapter 1".PadRight(20, '.') + "p.15");
Console.WriteLine("Summary".PadRight(20, '.') + "p.100");
}
}
Introduction........p.1
Chapter 1...........p.15
Summary.............p.100
ここではPadRight(20, '.')を使用しています。
文字通り、文字列の長さが20になるまでドットを追加します。
このように視覚的なガイドラインとして文字を使いたい場合に非常に有効な手段です。
注意点と特殊な挙動
PadRightを使用する際には、いくつか注意すべき仕様があります。
これを知っておかないと、予期しない表示崩れの原因になります。
指定した長さよりも元の文字列が長い場合
もし、totalWidthに指定した値よりも、元の文字列の長さの方が大きい場合はどうなるでしょうか?
結論から言うと、文字列は切り捨てられず、元のまま返されます</cst-red。
string text = "LongTextString";
// 5文字で指定するが、元の文字列は14文字ある
string result = text.PadRight(5);
Console.WriteLine($"[{result}]"); // そのまま出力される
[LongTextString]
このように、PadRightは「短ければ埋める」という動作であり、「長ければカットする」という機能は持っていません。
もし一定の長さで切り捨てたい(切り詰めたい)場合は、Substringメソッドなどと組み合わせて使用する必要があります。
全角文字が含まれる場合の計算
C#のLengthプロパティやPadRightメソッドは、文字の「見た目の幅」ではなく「文字数」を基準に動作します。
日本語のような全角文字が含まれている場合、コンソールなどでは全角1文字が半角2文字分の幅を取りますが、PadRightはそれを「1文字」としてカウントします。

この「見た目上のズレ」を解消するには、Shift-JISなどのエンコーディングを用いたバイト数計算を行うか、全角文字を判定して調整する独自のロジックが必要になります。
数値の整形におけるPadRightの活用
数値データを扱う際、基本的にはPadLeft(左側を埋めて右揃えにする)がよく使われますが、IDのプレフィックスを固定にする場合などにPadRightが役立つことがあります。
データのパディング比較
| メソッド | 目的 | 主な用途 |
|---|---|---|
| PadRight | 右側に文字を足す | 左揃え、ログの項目整形 |
| PadLeft | 左側に文字を足す | 右揃え、数値の桁揃え、0埋め |
例えば、「USER-」という文字列の後ろを特定の文字数で固定したい場合、次のように記述できます。
string prefix = "USER-";
string userId = "123";
// プレフィックスを10文字固定にし、アンダースコアで埋める
string formatted = prefix.PadRight(10, '_') + userId;
Console.WriteLine(formatted);
USER-_____123
パフォーマンスと代替案
大量の文字列操作を行うループ内でPadRightを使用する場合、毎回新しい文字列インスタンスが生成されるため、メモリのオーバーヘッドが気になることがあります。
文字列補完(String Interpolation)による整列
C# 6.0以降では、文字列補完の機能を使って同様の整形が可能です。
構文は{変数, -長さ}となります。
マイナスの記号をつけると左揃え(PadRight相当)、プラス(記号なし)だと右揃え(PadLeft相当)になります。
string name = "Alice";
// 文字列補完を使用して10文字の左揃えを行う
Console.WriteLine($"Name: {name, -10} | OK");
Name: Alice | OK
この書き方は、複数の変数を一気に整形して表示したい場合に非常にコードがスッキリするため、モダンなC#開発では推奨される手法です。
ただし、埋める文字を空白以外にしたい場合は、引き続きPadRightを使用する必要があります。
まとめ
PadRightメソッドは、テキストベースのUIやログ出力において、データの可読性を高めるためのシンプルかつ強力なツールです。
- 基本的な役割:文字列の右側を埋めて、指定した「全体の長さ」に調整する。
- デフォルトの動作:第2引数を省略すると半角空白で埋められる。
- カスタマイズ:第2引数に文字を指定すれば、ドットやハイフンなど自由な文字で埋められる。
- 注意点:元の文字列が指定した長さより長い場合は、カットされずにそのまま返される。
- 代替手段:空白で埋めるだけなら、文字列補完
{var, -10}を使うとコードが読みやすくなる。
適切な場面でPadRightを活用し、ユーザーや開発者にとって見やすい出力結果を提供できるようにしましょう。
特に、コンソールアプリケーションやツール開発において、整然と並んだ出力はプロフェッショナルな印象を与えます。
