C# エスケープシーケンスとは

C#のエスケープシーケンスについてです。

目次

文字 エスケープシーケンスとは / 一覧 / サンプル
  ファイルパスをわかりやすくする(逐語的リテラル文字列)
  シングルコーテーションとダブルコーテーションの違い

エスケープシーケンスとは

\文字
  • エスケープシーケンスとは、特殊な意味を持つ文字列のことです。
  • 作成方法は、文字の前にエスケープ文字の円記号(バックスラッシュ)を付けます。
    →例:\tをタブとする。
  • エスケープ文字+文字でエスケープシーケンスです。
  • バックスラッシュ(円記号)の文字コードは、shift-jisでは0x5C、UnicodeではU+005Cです。
  • 以下は、Microsoftの文字列のエスケープシーケンスのリンクです。
    https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/strings/#string-escape-sequences

主なエスケープシーケンスの一覧

エスケープシーケンス 説明
\" ダブルコーテーションを文字として表示する
\t タブを表示する
\\ バックスラッシュを表示する
\n 改行 (LF)する
\b バックスペースで1文字削除
\uxxxx Unicode文字を表示する
xxxxは4桁の16進数です。\u0041はAと表示されます。

エスケープシーケンスのサンプル

using System;

class Test1
{
    static void Main()
    {
        // ダブルコーテーションを表示
        Console.WriteLine("あいう\"えお");// あいう"えお

        // タブを表示 
        Console.WriteLine("あいう\tえお"); // あいう	えお

        // バックスラッシュを表示
        Console.WriteLine("あいう\\えお"); // あいう\えお

        // 改行を行う
        Console.WriteLine("あいう\nえお"); // 「う」の後に改行が入る

        // バックスペースで1文字削除    
        Console.WriteLine("あいう\bえお"); // あいえお

        // 記号(バックスラッシュ)とuと16進数4桁を指定
        Console.WriteLine("\u0041"); // A
        Console.WriteLine("\u0041\u0042"); // AB
    }
}

8行目は、エスケープシーケンスでダブルコーテーションを文字として表示しています。

ファイルパスをわかりやすくする(逐語的リテラル文字列)

using System;

class Test1
{
	static void Main()
	{
		//string a = "D:\Test1\テスト"; //コンパイルエラー

		string a = @"D:\Test1\テスト";
		Console.WriteLine(a); // D:\Test1\テスト
	}
}

7行目は、パスを記述しようとしますが円記号でエスケープシーケンスが機能するのでコンパイルエラーになります.
9行目は、文字列の前に@をつけています。この場合はエラーになりません。

以下は、Microsoftの逐語的リテラル文字列のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/strings/#regular-and-verbatim-string-literals

シングルコーテーションとダブルコーテーションの違い

using System;

class Test1
{
    static void Main()
    {
        Console.WriteLine('あ');// あ
//      Console.WriteLine('あいう');// 

        Console.WriteLine("あいう");// あいう
    }
}

7,8行目は、シングルコーテーションで括っています。文字リテラルのみ表示できます。
そのため7行目は文字が表示され8行目はコンパイルエラーになります。
10行目は、ダブルコーテーションで括っています。文字列リテラルを表示できます。

参考URL:Wikipediaのエスケープ文字
https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E6%96%87%E5%AD%97

関連の記事

C# 文字列の始まり/終わりを確認(StartsWith/EndsWith)
C# 文字列の位置を取得する(indexOf/lastIndexOf)
C# 文字列を切り出す(Substring)

△上に戻る