【Java】エスケープ処理って何?サンプルコードで使い方を解説
  • facebookページ
  • twitterページ
  • 2021.04.30

    【Java】エスケープ処理って何?サンプルコードで使い方を解説

    プログラミングでは「”(ダブルクォーテーション)」のように特殊な意味を持つ記号を入力する際、エスケープ処理が様々な場面で必要となります。

    本記事では、Javaでのプログラミングにおける特殊文字のエスケープ処理について、サンプルコードを掲載しながらご紹介していきます。

    Javaでのエスケープ処理とは


    Javaでは文字列を表す「””(ダブルクォーテーションマーク)」のように、特殊な記号といったものが存在します。

    特殊な記号をそのまま文字として出力したい場合や改行・タブといった特殊文字を文字列のなかで利用したい場合にはエスケープ処理が必要となります。

    エスケープシーケンス

    エスケープ処理は、エスケープシーケンスと呼ばれる「\(バックスラッシュ)」と何らかの記号や文字で表現します。

    バックスラッシュの後ろに特定の記号や文字がセットになることで、特殊文字と認識されエスケープ処理が実行されます。

    エスケープシーケンスの定番

    頻繁に利用されるエスケープシーケンスをいくつか確認しておきましょう。

    エスケープシーケンスの定番
      • \n : 改行
      • \t : タブ
      • \’ : シングルクォーテーション
      • \” : ダブルクォーテーション
      • \\ : バックスラッシュ
      • \xxx : 8進数の文字コード
      • \uxxx : 16進数の文字コード

    エスケープ処理をJavaのサンプルで確認しよう


    ここまでで概要について解説してきましたので、実際に定番のエスケープシーケンスを使ってどのような処理が実行されるのか具体的に確認しておきましょう。

    サンプル

    実行結果

    サンプルのようにエスケープシーケンスで記述すると、改行やタブといった特殊文字に変換されたり、ダブルクォーテーションのようにJavaでは文字列と認識される記号をそのまま出力出来るようにエスケープ処理が実行されています。

    ポテパンダの一言メモ

    9行目11行目13行目に関してはコメントアウトせずに実行しようとしても、Javaの構文に沿わないためコンパイルエラーとなります。

    Javaの正規表現でエスケープ処理を実行


    正規表現でもメタ文字を利用する際に、エスケープ処理が必要になります。

    今回はサンプルとして「?(はてなマーク)」の正規表現でエスケープ処理を実施してみましょう。

    サンプル

    はてなマークは「直前の文字が0または1個であること」を表すメタ文字です。

    実行結果

    出力結果の1行目は「あいう?えお」と「あいえお」がマッチするかを確認しており、「う」が省略された際に文字列が一致するため、「はてなマーク」の正規表現に一致し「true」が出力されています。

    2行目は「あいう?えお」と「あいう?えお」がマッチするかを確認しているため一見一致しているように感じますが、上述しているように「はてなマーク」が正規表現として機能しているため実際には「false」が出力されます。

    3行目と4行目に関しては「あいう\\?えお」つまり「あいう?えお」の文字列と一致するかをチェックしており、「str2」の変数に「あいう?えお」が設定されているため、4行目の出力結果が「true」という結果になりました。

    ポテパンダの一言メモ

    「\\?」とバックスラッシュを2つ記述しているのは「\」自体が特殊文字のため「\」をエスケープ処理する必要があるからです。

    さいごに: エスケープ処理を理解してJavaの特殊文字を使いこなそう


    本記事では、Javaで特殊文字を表現する際に利用するエスケープ処理の使い方についてご紹介してきました。

    エスケープ処理は最初の内は分かりにくいかも知れませんが、頻繁に利用する表現は限られています。

    今回ご紹介した定番のエスケープシーケンスや正規表現の基本を抑えておき、検索しながら使いこなせるよう学習を進めてみてください。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE