フッターコンテンツにスキップ
JAVA ヘルプ

Javaでマルチラインの文字列を扱う

Java のマルチライン文字列、またはテキストブロックは、Java コード内で長い文字列を扱う方法を大幅に簡素化しました。 導入前は、開発者は文字列を連結したり新しい行用のエスケープシーケンスを使用する必要があり、ソースコードは読みづらく管理が難しくなっていました。 このガイドでは、Java のマルチライン文字列について知っておくべきことをすべて紹介し、最終的には、それらをプロジェクトで使用することができるようになります。 また、IronPDF Java ドキュメントライブラリをテキストブロックと共に探索します。

Java のマルチライン文字列の理解

マルチライン文字列、またはテキストブロックは、Java コード内で複数行にまたがる文字列リテラルを連結演算子や新しい行用のエスケープシーケンスなしで記述することを可能にします。 この機能は、開発者が JSON や HTML コンテンツなど長い文字列を Java アプリケーション内で直接扱いやすくするために導入されました。

テキストブロックの導入

テキストブロックは、3 つの二重引用符文字(""")で開始および終了するマルチライン文字列リテラルです。 この新しい構文は、Java に標準機能として導入され、マルチライン文字列リテラルの可読性と書きやすさを向上させます。 テキストブロックは、開くと閉じるデリミタの間に囲まれた文字列シーケンスを単一の文字列リテラルとして扱い、行の区切り文字や偶発的な空白を保持します。

テキストブロックでのマルチライン文字列の作成

テキストブロックを使用してマルチライン文字列を作成するには、3 つの二重引用符文字でテキストを囲むだけです。 この方法は行の区切り文字を自動的に認識し、コードエディタ内で複数行にわたって文字列をフォーマットできるので、可読性が向上します。

String html = """
              <html>
                  <body>
                      <p>Hello, World!</p>
                  </body>
              </html>
              """;
String html = """
              <html>
                  <body>
                      <p>Hello, World!</p>
                  </body>
              </html>
              """;
JAVA

この例では、HTML コンテンツを Java コード内で簡単に読み取れるようになり、エスケープシーケンスや文字列の連結を必要とせずに、マルチラインの文字列リテラルを含める方法を示しています。

マルチライン文字列の扱い方

行区切り文字の操作

テキストブロックを使用すると、Java コンパイラが行区切り文字を自動的に認識するため、新しい行を示すために手動で\nを挿入する必要がありません。この機能は、複数行にわたる文字列を作成することを容易にし、最終的な文字列が入力文字列の正確な形式を反映するようにします。

テキストブロック内の行終端子と区切り文字の理解

Java テキストブロックを使用してマルチライン文字列を作成する際には、行終端子および行区切り文字の役割を理解することが重要です。 Java テキストブロック内の行終端子は自動的に認識されるため、行の末尾に\n\r\nを手動で追加して新しい行を示す必要はありません。Java コンパイラはこれをインテリジェントに処理し、最終的な文字列変数がさまざまなオペレーティングシステム間で意図した形式を保持することを保証します。

マルチライン文字列の連結

テキストブロックは、文字列の連結を大幅に削減しますが、マルチライン文字列を動的に作成する必要がある場合もあります。 テキストブロックを組み合わせたり、追加のテキストをマルチライン文字列に追加するには、連結演算子やStringBuilderのようなメソッドを使用できます。

String name = "John Doe";
String greeting = """
                  Hello, %s!
                  Welcome to our Java tutorial.
                  """.formatted(name);
String name = "John Doe";
String greeting = """
                  Hello, %s!
                  Welcome to our Java tutorial.
                  """.formatted(name);
JAVA

この例は、変数を multi-line 文字列内に挿入するためにformattedメソッドを使用し、テキストブロックのシンプルさと動的文字列操作を組み合わせる方法を示しています。

テキストブロックのエスケープシーケンス

テキストブロックは新しい行や二重引用符を自動的に処理しますが、タブや特殊文字を挿入するなど、他の目的でエスケープシーケンスを使用する必要があるかもしれません。 テキストブロック内では、エスケープシーケンスは従来の単一行文字列リテラルと同様に機能します。

新しい行の一貫した処理

テキストブロックの導入前にマルチライン文字列を作成する際の課題の1つは、異なるプラットフォームが異なる行区切り文字(Unix/Linux の場合は\n、Windows の場合は\r\n)を使用していたため、同じ文字列が異なる方法で表示されるということでした。 Java テキストブロックを使用すると、この不一致は優雅に解決されます。 基盤となるオペレーティングシステムに関係なく、テキストブロックは、行終端子のコンパイル時処理のおかげで、最終的な文字列変数がソースコードで指定された形式を維持することを保証します。

Java テキストブロックの実用的な応用: JSON コンテンツの埋め込み

マルチライン文字列は、いくつかのプログラミングタスクを劇的に簡素化します。 Java アプリケーション内で設定やテストデータを表す JSON 文字列を含める必要があるシナリオを考えてみましょう。 テキストブロックが導入される前は、このタスクは、煩雑な文字列連結もしくはエスケープシーケンスを必要としていました。 しかし、Java のテキストブロックを使用することで、プロセスは簡単かつはるかにスッキリしています。

コードの例

public class App {
    public static void main(String [] args) {
        String query = """
                        {
                          "name": "John Doe",
                          "age": 30,
                          "email": "johndoe@example.com",
                          "isSubscriber": true,
                          "address": {
                            "street": "123 Main St",
                            "city": "Anytown",
                            "zipCode": "12345"
                          }
                        }
                        """;
        System.out.println("JSON String:");
        System.out.println(query);
    }
}
public class App {
    public static void main(String [] args) {
        String query = """
                        {
                          "name": "John Doe",
                          "age": 30,
                          "email": "johndoe@example.com",
                          "isSubscriber": true,
                          "address": {
                            "street": "123 Main St",
                            "city": "Anytown",
                            "zipCode": "12345"
                          }
                        }
                        """;
        System.out.println("JSON String:");
        System.out.println(query);
    }
}
JAVA

出力

ここにコードの出力があります:

Java マルチライン文字列(開発者向けの動作方法): 図 1 - 前のコード例からの出力文字列

コードの説明

与えられたコードでは、Java コード内で JSON 文字列を直接含めるためにトリプルクオート(""")を使用した Java のテキストブロック機能を使用しています。 このアプローチは、煩雑な文字列連結や新しい行のエスケープシーケンスの必要性を排除し、コードをはるかにスッキリさせ、読みやすくします。 テキストブロックは、新しい行およびスペースを含む JSON 文字列のフォーマットを自動的に保持し、意図した通りに表示されます。

Java 用 IronPDF の紹介

Java マルチライン文字列(開発者向けの動作方法): 図 2 - Java 用 IronPDF ウェブページ

IronPDF for Javaは、Java 開発者が Java アプリケーション内で PDF ドキュメントを作成、編集、変換することを可能にする多目的ライブラリです。 このライブラリは、PDF ファイルの操作を簡素化し、HTML から PDF の生成、PDF コンテンツやプロパティのカスタマイズを含む幅広い機能を提供します。

IronPDF の主な機能はそのHTML から PDF への変換能力であり、レイアウトやスタイルが保持されます。 ウェブコンテンツから PDF を生成し、レポート、請求書、文書に最適です。 これには、HTMLファイル、URL、HTML文字列をPDFに変換することが含まれます。

import com.ironsoftware.ironpdf.*;

PdfDocument pdfFromUrl = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
pdfFromUrl.saveAs(Paths.get("UrlToPdf.pdf"));

PdfDocument pdfFromHtmlFile = PdfDocument.renderHtmlFileAsPdf("sample.html");
pdfFromHtmlFile.saveAs(Paths.get("invoice.pdf"));

PdfDocument pdfFromHtmlString = PdfDocument.renderHtmlAsPdf("<p>Hello World From IronPDF Java</p>");
pdfFromHtmlString.saveAs(Paths.get("StringToPdf.pdf"));
import com.ironsoftware.ironpdf.*;

PdfDocument pdfFromUrl = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
pdfFromUrl.saveAs(Paths.get("UrlToPdf.pdf"));

PdfDocument pdfFromHtmlFile = PdfDocument.renderHtmlFileAsPdf("sample.html");
pdfFromHtmlFile.saveAs(Paths.get("invoice.pdf"));

PdfDocument pdfFromHtmlString = PdfDocument.renderHtmlAsPdf("<p>Hello World From IronPDF Java</p>");
pdfFromHtmlString.saveAs(Paths.get("StringToPdf.pdf"));
JAVA

Java プロジェクトで IronPDF を使用して PDF ドキュメントを作成する基本的な例を見てみましょう。 この例では、単純な HTML 文字列から PDF ファイルを生成することを示しています。

import com.ironsoftware.ironpdf.*;
import java.awt.print.PrinterException;
import java.io.IOException;
import java.nio.file.Paths;

public class App {
    public static void main(String [] args) throws IOException, PrinterException {
        // Set your IronPDF License Key
        License.setLicenseKey("Your License Key");

        // HTML content as a multiline string using a text block
        String htmlContent = """
                <html>
                <head>
                <title>PDF Creation Example</title>
                </head>
                <body>
                <h1>Hello, IronPDF!</h1>
                <p>This is a PDF generated from HTML content.</p>
                </body>
                </html>
                """;

        // Generate a PDF document from the HTML content
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);

        // Save the PDF to the specified file path
        pdf.saveAs(Paths.get("c:\\IronPdf\\html.pdf"));
    }
}
import com.ironsoftware.ironpdf.*;
import java.awt.print.PrinterException;
import java.io.IOException;
import java.nio.file.Paths;

public class App {
    public static void main(String [] args) throws IOException, PrinterException {
        // Set your IronPDF License Key
        License.setLicenseKey("Your License Key");

        // HTML content as a multiline string using a text block
        String htmlContent = """
                <html>
                <head>
                <title>PDF Creation Example</title>
                </head>
                <body>
                <h1>Hello, IronPDF!</h1>
                <p>This is a PDF generated from HTML content.</p>
                </body>
                </html>
                """;

        // Generate a PDF document from the HTML content
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);

        // Save the PDF to the specified file path
        pdf.saveAs(Paths.get("c:\\IronPdf\\html.pdf"));
    }
}
JAVA

出力

これは、Java 用 IronPDF を使用してマルチライン文字列の PDF を出力したものです。

Java マルチライン文字列(開発者向けの動作方法): 図 3 - 前のコード例から出力された PDF

結論

Java マルチライン文字列(開発者向けの動作方法): 図 4 - IronPDF ライセンスページ

結論として、テキストブロックと共に導入された Java のマルチライン文字列機能は、コード内の長い文字列の可読性と管理を大幅に向上させ、特に JSON や HTML といった構造化データを扱う際に役立ちます。 Java 構文のこの改善は、開発プロセスを簡素化し、コードの書きやすさ、読みやすさ、メンテナンス性を向上させます。 この機能を IronPDF などのライブラリと統合することで、開発者はアプリケーション内で PDF ドキュメントを容易に生成、操作、および変換できます。 IronPDF は、Java の力を利用して、HTML コンテンツからの PDF 作成を含む、さまざまな機能を提供するための簡単なアプローチを提供します。

IronPDF はIronPDF の無料試用版を提供しており、ライセンスは$799から始まり、さまざまな開発ニーズに合わせたオプションの幅を提供しています。 あなたのPDFソリューションを次のレベルに引き上げるのに役立つ素晴らしい将来の投資になるでしょう!

Darrius Serrant
フルスタックソフトウェアエンジニア(WebOps)

Darrius Serrantは、マイアミ大学でコンピュータサイエンスの学士号を取得し、Iron SoftwareでフルスタックWebOpsマーケティングエンジニアとして働いています。若い頃からコーディングに惹かれ、コンピューティングを神秘的かつアクセス可能なものとし、創造性と問題解決のための完璧な媒体と考えていました。

Iron Softwareでは、新しいものを創造することと、複雑なコンセプトをより理解しやすくすることを楽しんでいます。Resident Developerの一人として、次世代に専門知識を共有するために、学生を教えることにも志願しました。

Darriusにとって、その仕事は価値があり、実際の影響があるため、満足感があります。