C#の文字列フォーマット方法!String.Format・補間文字列の使い方
生徒
「C#で文章の中に変数の値を入れたいときはどうすればいいですか?」
先生
「その場合は、文字列のフォーマット方法を使います。C#にはString.Formatや補間文字列($マークを使う方法)があります。」
生徒
「へえ!文字列フォーマットって便利そうですね。具体的にどんな風に使うんですか?」
先生
「それでは、基本から順番に見ていきましょう!」
1. 文字列フォーマットとは?
C#の文字列フォーマットとは、文字列の中に変数や数値、日付などを埋め込む方法のことです。プログラムでは「おはよう〇〇さん」や「今日の日付は〇〇です」といったように、状況によって変わる内容を文章の中に入れたいことがよくあります。
文字列フォーマットを使うと、あらかじめ文章の「ひな形」を用意しておき、そこに変数の値を差し込むことができます。これによって、コードが見やすく整理され、修正もしやすくなります。
2. String.Formatの使い方
String.Formatは、C#で昔から使われている文字列フォーマットの方法です。文章の中に{0}や{1}といった番号を置き、その位置に変数を差し込みます。
string name = "太郎";
int age = 20;
string message = String.Format("私の名前は{0}です。年齢は{1}歳です。", name, age);
Console.WriteLine(message);
このコードを実行すると、次のように出力されます。
私の名前は太郎です。年齢は20歳です。
{0}には最初の変数nameが入り、{1}には2つ目の変数ageが入ります。このように数字で順番を指定する仕組みです。
3. 補間文字列($マーク)の使い方
C# 6.0から追加された補間文字列は、より直感的でわかりやすい書き方です。文字列の前に$をつけ、文章の中に直接{変数名}を書くだけで使えます。
string name = "花子";
int age = 18;
string message = $"私の名前は{name}です。年齢は{age}歳です。";
Console.WriteLine(message);
実行結果は次のとおりです。
私の名前は花子です。年齢は18歳です。
補間文字列を使うと、変数の名前がそのまま見えるので、プログラムの可読性(読みやすさ)が大幅に上がります。初心者にとっても理解しやすい書き方です。
4. 数値や日付のフォーマット
文字列フォーマットでは、単に変数を埋め込むだけでなく、数値の表示形式や日付の書き方を整えることもできます。
4-1. 数値のフォーマット
例えば金額をカンマ区切りにしたい場合、次のように書きます。
int price = 1234567;
string message = String.Format("商品の価格は{0:N0}円です。", price);
Console.WriteLine(message);
商品の価格は1,234,567円です。
{0:N0}のN0は「カンマ区切りで小数点以下0桁」という意味です。
4-2. 日付のフォーマット
日付も指定した形式で表示できます。
DateTime today = DateTime.Now;
string message = String.Format("今日は{0:yyyy年MM月dd日}です。", today);
Console.WriteLine(message);
今日は2025年10月02日です。
yyyyは西暦、MMは月、ddは日を表します。補間文字列でも同様に書けます。
5. String.Formatと補間文字列の違い
最後に、String.Formatと補間文字列の違いを整理しておきましょう。
- String.Format:昔からある方法。
{0}や{1}を使って順番を指定する。 - 補間文字列:C# 6.0以降で使える新しい書き方。変数名をそのまま書けるので読みやすい。
現代のC#プログラミングでは、補間文字列を使うのが一般的です。ただし、古いコードや教材ではString.Formatが使われていることもあるので、両方の書き方を知っておくと安心です。