本文へスキップ
BecomeCoder

C#文法コース · 第1章 基礎文法とデータ型 · レッスン9

文字列リテラルと書式指定

ブラウザで完結

導入

ファイルパスやJSON、複数行のテキストを書くとき、\(バックスラッシュ)や改行の扱いに悩みます。C#には用途別の文字列リテラル(逐語的文字列・生文字列)が用意されています。あわせて、金額の桁区切りや小数点以下の桁数をそろえる書式指定も学びます。

図解

flowchart TB
    N["普通の文字列<br/>&quot;C:\\temp&quot; ← \\ をエスケープ"] --> V["@逐語的文字列<br/>@&quot;C:\temp&quot; ← \\ をそのまま書ける"]
    V --> R["&quot;&quot;&quot; 生文字列 &quot;&quot;&quot;<br/>改行も引用符もそのまま"]

サンプル

// 通常の文字列: \ は特別な意味を持つのでエスケープが必要
Console.WriteLine("改行は\\n、タブは\\t");    // 改行は\n、タブは\t

// @逐語的文字列: \ をそのまま書ける(Windowsのパスなどで便利)
Console.WriteLine(@"C:\Users\Taro");          // C:\Users\Taro

// """ 生文字列リテラル(raw string): 改行も " もそのまま書ける
string json = """
    { "name": "Taro" }
    """;
Console.WriteLine(json);                       // { "name": "Taro" }

// 書式指定: 補間の {値:書式} で桁区切りや小数桁をそろえる
int price = 1234567;
Console.WriteLine($"{price:N0}円");            // 1,234,567円(N0 = 3桁区切り・小数なし)

double rate = 0.1234;
Console.WriteLine($"{rate:P1}");               // 12.3%(P1 = パーセント・小数1桁)
Console.WriteLine($"{3.14159:F2}");            // 3.14(F2 = 小数点以下2桁)
  • @"..."(逐語的文字列)は\をそのまま書ける。ファイルパスに便利
  • """..."""(生文字列リテラル)は改行も"もそのまま書ける。JSONやSQLに便利
  • 書式指定{値:書式}N0(3桁区切り)・F2(小数2桁)・P1(パーセント)などで見た目を整える

演習

int amount = 1000000;

// TODO: amount を 3桁区切りにして "1,000,000円" と出力してください
//       (文字列補間の {値:N0} を使う)
___
  • 期待される出力: 1,000,000円
ヒント1を見る

補間の中で{amount:N0}と書くと3桁区切りになります

ヒント2を見る

Console.WriteLine($"{amount:N0}円");

まとめ

  • @"..."\をそのまま書ける逐語的文字列、"""..."""は改行もそのまま書ける生文字列
  • 書式指定{値:N0}(桁区切り)・{値:F2}(小数桁)・{値:P1}(%)で見た目を整える
  • パス・JSON・金額表示など、実務の頻出パターンをカバーできる

次回: 真偽(YES/NO)を表すboolと比較演算子です。

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

C# — ブラウザ内で実行

ブラウザ内でC#を動かす環境を読み込みます(初回のみ数秒)。
スクロールして表示された時点でも自動で読み込まれます。