Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

Javaで特殊文字を表現する際、エスケープシーケンスを利用する必要があります。

本記事では、Javaを学習中の初心者向けにエスケープシーケンスの使い方をサンプルコードを掲載しながらご紹介していきます。

エスケープシーケンスとは


エスケープシーケンスは、文字をそのままの文字列として解釈するのではなく、タブや改行をはじめとした文字出力制御を行うための特殊文字のことを指します。

使用方法

Javaでのエスケープシーケンスは「\(バックスラッシュ)」と何らかの文字列を組み合わせることで、文字列中のデータを特殊な文字として解釈することが可能となります。

例えばJavaでは文字列を表現する際に「”(ダブルクォーテーションマーク)」を使用するため、ダブルクォーテーションマークをそのまま記述すると文字列の始まりまたは終わりと解釈されてしまいます。

もし文字列の中でダブルクォーテーションマークをそのまま出力したい場合には「\”」と記述することで、「”」ダブルクォーテーションマークのまま文字列として出力することが可能です。

ポテパンダの一言メモ

Mac環境を想定した解説です。
Windows環境などでは「¥」マークが利用されるため読み替えが必要です。

エスケープシーケンスの代表例

Javaで良く利用されるエスケープシーケンスの代表例をご紹介します。

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

Javaでエスケープシーケンスを使用したサンプル


では実際に代表例としてご紹介したエスケープシーケンスを使用したサンプルコードを確認してみましょう。

改行

System.out.println("文章の途中で\n改行されます。");
System.out.println("こちらはn改行されません。");

実行結果

文章の途中で
改行されます。
こちらはn改行されません。

「\n」は改行文字として判定されますが、バックスラッシュを付けない場合そのまま「n」と出力されています。

タブ

System.out.println("文章の途中で\tタブが入ります。");
System.out.println("こちらはtタブとは認識されません。");

実行結果

文章の途中で	タブが入ります。
こちらはtタブとは認識されません。

シングルクォーテーション

System.out.println('\'');
// System.out.println('''); こちらはコンパイルエラーとなり実行出来ません。

実行結果

'

Javaでは文字列はダブルクォーテーションで囲みますが、文字リテラルの場合シングルクォーテーションで囲って表現します。

ただし「’」を文字リテラルとして出力したい場合には、上記のようにエスケープシーケンスを利用しないとエラーとなるため注意が必要です。

ダブルクォーテーション

System.out.println("文字列の途中に\"ダブルクォーテーションマークが表示されます。");
// System.out.println("これは"ダブルクォーテーションマークの数が一致しないのでエラーとなり実行出来ません。");

実行結果

文字列の途中に"ダブルクォーテーションマークが表示されます。

シングルクォーテーションと同じように、文字列中にダブルクォーテーションマークを表示したい場合エスケープシーケンスが必要です。

バックスラッシュ

System.out.println("文字列の途中に\\バックスラッシュが表示されます。");
// System.out.println("これは\無効なエスケープシーケンスのためエラーとなります。");

実行結果

文字列の途中に\バックスラッシュが表示されます。

8進数の文字コード

System.out.println("エスケープシーケンス \101 \102 \103");
System.out.println("エスケープシーケンスなし 101 102 103");

実行結果

エスケープシーケンス A B C
エスケープシーケンスなし 101 102 103

エスケープシーケンスを使用すると対応する文字コードに変換されて出力されます。

16進数の文字コード

System.out.println("エスケープシーケンス \u0041 \u0042 \u0043");
System.out.println("エスケープシーケンスなし u0041 u0042 u0043");

実行結果

エスケープシーケンス A B C
エスケープシーケンスなし u0041 u0042 u0043

16進数で指定する場合にはバックスラッシュの直後に「u」を指定します。

Javaの正規表現でエスケープシーケンスを使う


Javaプログラムにおいて、エスケープシーケンスを利用する機会の多い正規表現についても確認しておきましょう。

正規表現の特殊文字

まず正規表現のなかで頻繁に利用される特殊文字を一覧で掲載します。

正規表現の特殊文字
  • 「.」: 任意の1文字
  • 「*」: 直前の1文字を繰り返し(0回以上)
  • 「^」: 行の先頭
  • 「$」: 行の末尾
  • 「?」: 直前の文字と一致またはなし

正規表現でエスケープシーケンスを使ったサンプル

メタ文字が含まれる場合エスケープシーケンスを利用することになります。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {

	public static void main(String[] args) {
	    String regex1 = "あい.えお";
        String regex2 = "あい\\.えお";
	    String str1 = "あいうえお";
	    String str2 = "あい.えお";

        Pattern pattern1 = Pattern.compile(regex1);
	    Pattern pattern2 = Pattern.compile(regex2);
	    Matcher matcher1 = pattern1.matcher(str1);
	    Matcher matcher2 = pattern2.matcher(str1);
	    Matcher matcher3 = pattern1.matcher(str2);
	    Matcher matcher4 = pattern2.matcher(str2);

	    System.out.println(matcher1.matches());
	    System.out.println(matcher2.matches());
	    System.out.println(matcher3.matches());
	    System.out.println(matcher4.matches());

	}
}

実行結果

true
false
true
true

正規表現の場合「.」は任意の1文字となるため「regex1」には「str1」も「str2」も一致することになります。

ただし「regex2」ではエスケープシーケンスを指定しているため文字列で「あい.えお」のみが一致します。

結果、サンプルのように「regex2」と「str1」の組み合わせはエラーとなりました。

ポテパンダの一言メモ

サンプルでは「.」を使用していますが、他の特殊文字でも同じようにエスケープシーケンスが必要です。

さいごに: Javaでのエスケープシーケンスの使い方を把握しておこう


本記事では、Javaプログラミングで特殊文字を表現するために利用するエスケープシーケンスの使い方をご紹介してきました。

エスケープシーケンスが必要な場面は意外と多いため、プログラミング学習を進めるうちに何度も対応する必要があり、自然と使えるようになっていきます。

最初から全てを覚える必要はないため、エスケープシーケンスの概念を理解した上で必要に応じて検索しながら使いこなせるように学習を進めていきましょう。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。