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

C#のエスケープシーケンスのサンプルです。

目次

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

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

\文字
  • エスケープシーケンスは、通常の文字の機能や意味とは異なるものにします。
    →\"で文字列をくくるダブルコーテーション(")の機能はなくして文字として表示させる。
    →\nで改行とします。\tをタブとします。
  • 円記号(バックスラッシュ)はエスケープ文字です。
  • エスケープ文字+文字でエスケープシーケンスです。
  • バックスラッシュ(円記号)の文字コードは、shift-jisでは0x5C、UnicodeではU+005Cです。

 

よく使うエスケープシーケンスの一覧

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

以下は、Microsoftの文字列のエスケープシーケンスのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/strings/#string-escape-sequences

 

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

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行目は、ダブルコーテーションで括っています。文字列リテラルを表示できます。

関連の記事

C# IndexOf 文字列の位置を取得する
C# Substring 文字列を切り出す

△上に戻る