導入
ファイルパスやJSON、複数行のテキストを書くとき、\(バックスラッシュ)や改行の扱いに悩みます。C#には用途別の文字列リテラル(逐語的文字列・生文字列)が用意されています。あわせて、金額の桁区切りや小数点以下の桁数をそろえる書式指定も学びます。
図解
flowchart TB
N["普通の文字列<br/>"C:\\temp" ← \\ をエスケープ"] --> V["@逐語的文字列<br/>@"C:\temp" ← \\ をそのまま書ける"]
V --> R["""" 生文字列 """<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と比較演算子です。