スポンサーリンク
※サイト運営にサーバーは必須です※
~ ロリポップ! はコスパのよい初心者向けサーバーです~
目次
エスケープシーケンスとは?
通常の文字列では表せない、特別な機能(1)または特別な文字(2)を表現するものです。
(1) 特別な機能
改行(\n)やタブ(\t)などがあります。
(2) 特別な文字
通常であれば、プログラム上で特別な意味を持つ言葉を、単純な文字として表現できるようにします。例えば、2重引用符「”」は、文字列を囲む際に普段は使われますが、単純な文字として扱いたい場合は、\”とする必要があります。
- エスケープシーケンスを表現するために、先頭に\(円マーク)を用いられます。
※参考サイト
- https://msdn.microsoft.com/ja-jp/library/h21280bw.aspx
- https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/strings/
エスケープシーケンス一覧
エスケープ シーケンス | 文字名 |
\’ | 単一引用符(「’」) |
\” | 二重引用符(「”」) |
\\ | 円記号(「\」) |
¥0 | null文字 |
\a | アラート音(警告) |
\b | バックスペース |
\f | 改ページ(フォームフィード) |
\n | 改行(ラインフィード) |
\r | 復帰(キャリッジリターン) |
\t | 水平タブ |
\v | 垂直タブ |
コメント
- システムによっては\nで改行が効かない場合があります。その場合は\r\nと書くとうまく通ることがあります。
- 一覧には書きませんでしたが、文字コード(Unicode)を直接扱いたい場合にもエスケープシーケンスは使われます。(\xや\uが先頭にあった場合は、文字コードを扱っています)
- エスケープシーケンスは、\があるので、2文字あるように見えます。そのため、エスケープシーケンスはstring型でしか扱えないように思われるかもしれません。しかし、内部的には、エスケープシーケンスは、文字コード(Unicode)と1対1の対応関係があります。そのため、Unicode を1文字分扱うchar型でも使用することができます。
- 「エスケープシーケンス」とほぼ同じ意味の言葉として「エスケープ文字」があります。
コード
言語はC#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EscapeSequence01 { class Program { static void Main(string[] args) { Console.Write("\'"); Console.Write("\""); Console.Write("\\"); Console.WriteLine();//改行 Console.Write("\0"); Console.Write("←null"); Console.WriteLine();//改行 //アラート音が鳴る Console.Write("\a"); //半角を1文字消す Console.Write("backspace"); Console.Write("\b"); Console.Write("backspace"); Console.WriteLine();//改行 //全角を2文字消す Console.Write("バックスペース"); Console.Write("\b\b\b\b");//全角を消す場合は2つ必要 Console.Write("バックスペース"); Console.WriteLine();//改行 Console.Write("改ページ"); Console.Write("\f"); Console.Write("改ページ"); Console.WriteLine();//改行 Console.Write("改行"); Console.Write("\n"); Console.Write("改行"); Console.WriteLine();//改行 //復帰すると、カーソルが行の先頭に戻る Console.Write("1番目ですよ"); Console.Write("\r"); Console.Write("2回目"); //「1番目ですよ」の最初の3文字が「2回目」に上書きされる //結果は「2回目ですよ」になる Console.WriteLine();//改行 Console.Write("タブ"); Console.Write("\t"); Console.Write("タブ"); Console.WriteLine();//改行 Console.Write("垂直タブ"); Console.Write("\v"); Console.Write("垂直タブ"); Console.WriteLine();//改行 //エスケープシーケンス1つ分はchar型で扱える char c = '\t'; Console.WriteLine("あいう"+c+"えお"); } } } |
実行結果
関連記事
~ギャンブルに絶対儲かる必勝法があるのだろうか?~
私(サイト主)はこの疑問に対して非常に興味を持ち、プログラミングで検証してみました。
このサイトを応援してもいいかなと思う人はぜひとも購入を検討してみてください。