【Java】エスケープが必要な文字の一覧と注意点について

Java で「エスケープが必要な文字」とは、文字列や文字リテラル内で特別な意味を持つ文字、または直接書けない制御文字や特殊記号のことです。これらはそのまま書くと文法エラーになったり、意図しない挙動を引き起こすため、バックスラッシュ(\)を使ってエスケープする必要があります。

✅ エスケープが必要な文字(Java)

1. 制御文字

文字 エスケープ 意味
改行 \n Line Feed(LF)
復帰 \r Carriage Return(CR)
タブ \t 水平タブ
バックスペース \b Backspace
フォームフィード \f 改ページ

2. 構文上特別な意味を持つ文字

文字 エスケープ 用途/理由
" \" 文字列リテラルの区切り
' \' 文字リテラルの区切り(char型)
\ \\ エスケープ文字そのもの(バックスラッシュ)

3. Unicode エスケープ

書き方 意味
\uXXXX Unicodeの文字を16進で表現(例:'\u3042' → ‘あ’)

⚠️ \u エスケープはコンパイル前に処理されるため、コメント内でも作用してしまう点に注意。


❗ エスケープしないとどうなる?

以下のコードはコンパイルエラーになります:

java
String s = "He said "Hello""; // エラー: ダブルクォートが入れ子になっている

✅ 正しくは:

java
String s = "He said \"Hello\"";

🔍 例:エスケープが必要な場面

java
public class EscapeExample {
    public static void main(String[] args) {
        System.out.println("改行:\n次の行");
        System.out.println("タブ:\t区切り");
        System.out.println("ダブルクォート: \"Java\"");
        System.out.println("バックスラッシュ: \\path\\to\\file");
        System.out.println("Unicode文字: \u3053\u3093\u306B\u3061\u306F"); // こんにちは
    }
}

✅ エスケープが不要な文字

  • アルファベットや数字(a-z, A-Z, 0-9

  • ほとんどの記号(,!@+ など)

これらは通常の文字列リテラル内にそのまま書いてOKです。


💡 まとめ

種類 エスケープ例 理由
制御文字 \n, \t 改行やタブなど見えない文字
特殊記号 \", \\ 構文上の記号を文字として扱う
Unicode文字 \uXXXX 全てのUnicode文字に対応

管理人
Javaの記事の一覧はJava にまとめてあります

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP