カテゴリー
Java

Java(Step5-3)

基本型と演算

拡張表記

ここでは、改行文字などを表すための手段である拡張表記について説明します。

拡張表記

逆斜線記号「\」を先頭にした文字の並びによって単一の文字を表す表記法を、拡張表記(escape sequence)と呼びます。拡張表記は、文字リテラルや文字列リテラルで利用します。その一覧は以下のようになります。

拡張表記(escape sequence)
b 後退…表示位置を直前の位置へ移動する
f 書式送り…改ページして次のページの先頭に移動
n 改行…改行して次の行の先頭へ移動する
r 復帰…現在の行の先頭位置へ移動
t 水平タブ…次の水平タブへ移動する
文字 ” …二重引用符
文字 ‘ …単一引用符
文字 \ …逆斜線
ooo oooは8進数
Unicode拡張(Unicode escape)
uhhhh hhhhは16進数…16進数でhhhhの値をもつ文字
拡張表記とUnicode拡張

■\b…後退

後退を出力すると、現表示位置が(その行内での直前の位置)に移動します。

■\f…書式送り

書式送りを出力すると、現表示位置が(次の論理ページの先頭位置)に移動します。通常の環境では、コンソール画面へ出力しても何も起こりません。プリンタへの出力においては、改ページを行う際に使います。

■\n…改行

改行を出力すると、現表示位置が(次の行の先頭)に移動します。

■\r…復帰

復帰を出力すると、現表示位置が(その行の先頭)に移動します。画面に復帰を出力すると、表示済みの文字を書き換えることができます。その例となるプログラムを以下に示します。

//CarriageReturn.java
//復帰の出力によって表示済み文字を書き換える

public class CarriageReturn{
    public static void main(String[] args){
        System.out.print("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
        System.out.println("\r12345");
    }
}
CarriageReturn.java実行結果

■\t…水平タブ

水平タブを出力すると、現表示位置がその行における(次の水平タブ位置)に移動します。現表示位置が行における最後の水平タブ位置にある時やその位置を過ぎている場合の動作は規定されません。以下がその例です。

//HorizontalTab.java
//水平タブ文字の出力

public class HorizontalTab {
    public static void main(String[] args){
        System.out.println("ABC\t123");
    }    
}
HorizontalTab.jav実行結果

■\” と \’…二重引用符と単一引用符

これらを文字列リテラル中で使う場合と文字リテラルで使う場合とでは注意が必要になります。

□文字列リテラルでの表記

  • 二重引用符…拡張表記によって表さなければなりません。
  • 単一引用符…そのままの表記と拡張表記の両方で表記できます。

□文字リテラルでの表記

  • 二重引用符…そのままの表記と拡張表記の両方で表記できます。
  • 単一引用符…拡張表記によって表さなければなりません。

上記を利用したプログラムを以下に示します。

//Quotation.java
//拡張表記の利用例

public class Quotation {
    public static void main(String[] args){
        System.out.println("文字列リテラルと文字定数について");
        System.out.println("二重引用符で囲まれた\"ABC\"は文字列リテラルです。");
        System.out.print("一重引用符で囲まれた");
        System.out.print('\'');
        System.out.println("A'は文字リテラルです。");
    }    
}
Quotation.java実行結果

■\\…逆斜線

逆斜線の表記には拡張表記を用います。

■8進数拡張表記

8進数のコードで文字を表すのが、8進数拡張表記です。指定できる値の範囲は、0~377です。この範囲内で表せるのは、英数字や一部の記号文字になります。ひらがなや漢字は使えません。