エスケープ文字、エスケープシーケンスがごちゃごちゃしていたので、エスケープシーケンスについて調べました。
エスケープシーケンスとは
エスケープシーケンス(escape sequence)とは、文字を書くときに文字とプログラミングコードを区別するために使われる特殊な文字を用いた文字列です。
例えば文字を扱うString型ではダブルクォーテーションマーク「”」を使用して文字を変数へ代入しますが、文字列内にダブルクォーテーションマークを使用したい場合、以下のように書くとコンパイルエラーとなります。
String str = “ダブルクォーテーションマークは ” です。”;
コンピュータ側が「ダブルクォーテーションマークは」までを文字列と認識し最後の「です。」の部分を認識できないため構文エラーが発生します。
コンパイルエラーを避ける(エスケープ)ためにエスケープシーケンスという特殊な書き方を用いる必要があります。
またエスケープの対象となる文字をエスケープ文字(escape character)といいます。
エスケープシーケンスの書き方
エスケープシーケンスはエスケープ文字の頭にバックスラッシュ「 \ 」(または半角¥マーク)をつけます。
String str = “ダブルクォーテーションマークは \” です。”
エスケープシーケンス一覧
Javaで使用されるエスケープシーケンスの一覧は以下となります。
エスケープシーケンス | 内容 |
---|---|
\t | タブ文字 |
\b | バックスペース |
\n | ラインフィールド(改行) |
\r | キャリッジリターン(復帰) |
\f | フォームフィード |
\’ | シングルクォーテーション |
\” | ダブルクォーテーション |
\\ | バックスラッシュ |
ラインフィールド、キャリッジリターンは改行の一種です。以下で詳しく書いています。
また16進数の文字を扱うときは「\u」を使用します。
System.out.println(“\u0048”); // H
参考元:https://docs.oracle.com/javase/tutorial/java/data/characters.html
おわり
バックスペースって使うことあるのかなと軽く調べてみましたがほとんど意味をなしていないようです。というのも環境依存によって動作が変わってしまうからです。環境によっては文字が1文字消されるようですが、私の環境では何も変わりませんでした。
(フォームフィードもまた環境に依存します。)