HOWTO · Java

Java で改行を出力する

この記事では、Java で改行を出力する方法を紹介します。

新しい行は、行の終わりまたは新しい行の開始を示します。改行、EOL(行末)、または改行文字とも呼ばれます。

Java 言語では、改行を出力するさまざまな方法があります。System クラスのエスケープシーケンスまたは事前定義されたメソッドを使用できます。

Java で println() 関数を使用して改行を出力する

以下のコードブロックでは、println() 関数を使用して新しい行を出力します。System クラスにはさまざまな便利なメソッドとフィールドが含まれているため、このクラスをインスタンス化することはできません。out は、System クラスに存在する標準出力ストリームオブジェクトです。通常、このストリームは、ホスト環境またはユーザーによって指定された表示出力に対応します。println() は、PrintStream クラスのメソッドです。文字列を出力してから、行を終了します。コンソール出力に出力するパラメーターとして文字列を取ります。print() 関数は文字列を出力します。引数が null の場合、文字列 null が出力されます。それ以外の場合、文字列の文字は、プラットフォームのデフォルトの文字エンコードに従ってバイトに変換されます。

package new_line;

public class WaysToPrintNewLine {
  public static void main(String[] args) {
    System.out.println("Line1");
    System.out.print("Line2");
  }
}

以下は、上記の 2 行の出力です。

Line1
Line2

Java でエスケープシーケンス\n 文字を使用して改行を出力する

コンソール出力のテキスト内に新しい行を出力したい場合があります。このような場合に println() メソッドを使用することは、冗長なタスクになります。このような場合、コードを読みやすくするためにエスケープシーケンスを使用できます。エスケープシーケンスは、直前のバックスラッシュ\で構成される文字です。このような文字の例は次のとおりです。

  1. \t を使用してテキストにタブを挿入します。
  2. \b を使用して、テキストにバックスペースを挿入します。
  3. \n を使用して、テキストに新しい行を挿入します。

以下のコードでは、\n エスケープシーケンスを使用して、インラインステートメントを 2つの異なる行に分割しています。

package new_line;

public class WaysToPrintNewLine {
  public static void main(String[] args) {
    System.out.println("Hi, I am Lee"
        + "\n"
        + "I will help you write the code.");
  }
}

上記のコードの出力は次のとおりです。

Hi, I am Lee I will help you write the code.

Java で getProperty() メソッドを使用して改行を出力する

このようにして、System クラスの getProperty() メソッドを使用します。クラス名で直接アクセスできるさまざまな静的メソッドとフィールドが定義されています。したがって、その呼び出しにオブジェクトは必要ありません。getProperty() メソッドは、指定されたキー(この場合は line.separator 変数)で示されるシステムプロパティを取得します。セキュリティマネージャが存在する場合は SecurityException をスローし、その checkPropertyAccess メソッドは指定されたシステムプロパティへのアクセスを許可しません。キーが null の場合は NullPointerException。キーが空の場合は IllegalArgumentException

package new_line;

public class WaysToPrintNewLine {
  public static void main(String[] args) {
    String newline = System.getProperty("line.separator");
    System.out.println("I am in line1" + newline + "I am in line2");
  }
}

以下は、上記のコードブロックのコンソール出力です。

I am in line1
I am in line2

Java で lineSeparator() メソッドを使用して改行を出力する

lineSeparator() メソッドは、システムに依存する行区切り文字列を返します。常にシステム依存の文字列、つまり line.separator 文字列であるシステムプロパティの初期値を返します。このメソッドは、Java1.7 以降のバージョンで使用できます。このメソッドは、System クラスの静的ファクトリメソッドです。

package new_line;

public class WaysToPrintNewLine {
  public static void main(String[] args) {
    String newline1 = System.lineSeparator();
    System.out.println("I am in line1" + newline1 + "I am in line2");
  }
}

上記のコードの出力は、System.getProperty コードの出力と同様です。

Java で%n 改行文字を使用して改行を出力する

PrintStream クラスの printf() メソッドは、指定されたフォーマット文字列と引数を使用して、この出力ストリームにフォーマットされた文字列を書き込むための使用法を見つけます。このメソッドは、Java1.5 リリース以降で使用できます。フォーマット文字列に不正な構文、指定された引数と互換性のないフォーマット指定子が含まれている場合は java.util.IllegalFormatException がスローされ、フォーマットが null の場合は NullPointerException がスローされます。%n 文字はプラットフォームに依存しない文字であり、フォーマット指定子として printf() 関数で使用できます。

package new_line;

public class WaysToPrintNewLine {
  public static void main(String[] args) {
    String newline1 = System.lineSeparator();
    System.out.printf("I am in line1%nI am in 2");
  }
}

上記のコードの出力は、System.getProperty コードの出力と同様です。