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